diff options
Diffstat (limited to 'docs/embedding.md')
-rw-r--r-- | docs/embedding.md | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/docs/embedding.md b/docs/embedding.md new file mode 100644 index 000000000..5c2f3b31e --- /dev/null +++ b/docs/embedding.md | |||
@@ -0,0 +1,64 @@ | |||
1 | # WARNING: Until issue [#173](https://github.com/tmk/tmk_keyboard/issues/173) goes through, the [core][1] repository will not be up-to-date with the latest changes and fixes, but can still be used. | ||
2 | |||
3 | If you want to use TMK for your own keyboard project, you've got three options for embedding the [core][1]. | ||
4 | The recommended option is [subtrees](#1-git-subtree). | ||
5 | |||
6 | After adding the embed you'll need to [modify the Makefile](#modifications-to-the-makefile) of your project to point to the core correctly. | ||
7 | |||
8 | ## 1. git subtree | ||
9 | |||
10 | In order to set up the subtree in your project, first add the core repository as a remote: | ||
11 | ``` | ||
12 | git remote add -f core https://github.com/tmk/tmk_core | ||
13 | ``` | ||
14 | |||
15 | Then add the core as a subtree (directory) in your local repository: | ||
16 | ``` | ||
17 | git subtree add -P tmk_core core master --squash | ||
18 | ``` | ||
19 | |||
20 | And that's it! | ||
21 | |||
22 | When you want to update the subtree in your repository to match the master on [tmk_core][1], do this: | ||
23 | ``` | ||
24 | git subtree pull -P tmk_core core master --squash | ||
25 | ``` | ||
26 | |||
27 | ## 2. git submodule | ||
28 | |||
29 | In order to set up the submodule in your project, first add a new submodule: | ||
30 | ``` | ||
31 | git submodule add https://github.com/tmk/tmk_core tmk_core | ||
32 | ``` | ||
33 | |||
34 | Then pull, sync and update the submodule: | ||
35 | ``` | ||
36 | git pull | ||
37 | git submodule sync --recursive | ||
38 | git submodule update --init --recursive | ||
39 | ``` | ||
40 | |||
41 | And that's it! | ||
42 | |||
43 | When you want to update the subtree in your repository to match the master on [tmk_core][1], follow the same steps as above. | ||
44 | |||
45 | If you want to clone a repository from GitHub that has submodule(s) in it, pass <kbd>--recursive</kbd> when cloning, like so: | ||
46 | `git clone --recursive https://github.com/<username>/<repository>` | ||
47 | |||
48 | ## 3. Manually (without git) | ||
49 | |||
50 | *Note: This is not recommended in any way, but it's still possible.* | ||
51 | |||
52 | Download a zipped version of the [tmk_core][1] repository using this link: | ||
53 | <https://github.com/tmk/tmk_core/archive/master.zip> | ||
54 | |||
55 | Extract the zip in your project's directory, then rename the folder to <kbd>tmk_core</kbd>. | ||
56 | |||
57 | ## Modifications to the *Makefile* | ||
58 | |||
59 | The one thing you have to make sure to change in the *Makefile* (compared to [tmk_keyboard](https://github.com/tmk/tmk_keyboard) drivers' *[Makefile](https://github.com/tmk/tmk_keyboard/blob/master/keyboard/gh60/Makefile#L45)*) is the "TMK_DIR" variable, which needs to point to the embed directory: | ||
60 | ```Makefile | ||
61 | TMK_DIR = ./tmk_core | ||
62 | ``` | ||
63 | |||
64 | [1]: https://github.com/tmk/tmk_core \ No newline at end of file | ||