forked from mirrors/qmk_firmware
62 lines
No EOL
2.1 KiB
Markdown
62 lines
No EOL
2.1 KiB
Markdown
If you want to use TMK for your own keyboard project, you've got three options for embedding the [core][1].
|
|
The recommended option is [subtrees](#1-git-subtree).
|
|
|
|
After adding the embed you'll need to [modify the Makefile](#modifications-to-the-makefile) of your project to point to the core correctly.
|
|
|
|
## 1. git subtree
|
|
|
|
In order to set up the subtree in your project, first add the core repository as a remote:
|
|
```
|
|
git remote add -f core https://github.com/tmk/tmk_core
|
|
```
|
|
|
|
Then add the core as a subtree (directory) in your local repository:
|
|
```
|
|
git subtree add -P tmk_core core master --squash
|
|
```
|
|
|
|
And that's it!
|
|
|
|
When you want to update the subtree in your repository to match the master on [tmk_core][1], do this:
|
|
```
|
|
git subtree pull -P tmk_core core master --squash
|
|
```
|
|
|
|
## 2. git submodule
|
|
|
|
In order to set up the submodule in your project, first add a new submodule:
|
|
```
|
|
git submodule add https://github.com/tmk/tmk_core tmk_core
|
|
```
|
|
|
|
Then pull, sync and update the submodule:
|
|
```
|
|
git pull
|
|
git submodule sync --recursive
|
|
git submodule update --init --recursive
|
|
```
|
|
|
|
And that's it!
|
|
|
|
When you want to update the subtree in your repository to match the master on [tmk_core][1], follow the same steps as above.
|
|
|
|
If you want to clone a repository from GitHub that has submodule(s) in it, pass <kbd>--recursive</kbd> when cloning, like so:
|
|
`git clone --recursive https://github.com/<username>/<repository>`
|
|
|
|
## 3. Manually (without git)
|
|
|
|
*Note: This is not recommended in any way, but it's still possible.*
|
|
|
|
Download a zipped version of the [tmk_core][1] repository using this link:
|
|
<https://github.com/tmk/tmk_core/archive/master.zip>
|
|
|
|
Extract the zip in your project's directory, then rename the folder to <kbd>tmk_core</kbd>.
|
|
|
|
## Modifications to the *Makefile*
|
|
|
|
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:
|
|
```Makefile
|
|
TMK_DIR = ./tmk_core
|
|
```
|
|
|
|
[1]: https://github.com/tmk/tmk_core |