# -*- mode: Makefile; -*-
ifndef VNET_ROOT
export VNET_ROOT = $(shell pwd)
include $(VNET_ROOT)/Make.env
endif
SUBDIRS:=
SUBDIRS+= examples
SUBDIRS+= scripts
SUBDIRS+= gc
SUBDIRS+= libxutil
SUBDIRS+= vnetd
SUBDIRS+= vnet-module
.PHONY: all
all: compile
gc.tar.gz:
wget http://www.hpl.hp.com/personal/Hans_Boehm/gc/gc_source/$@
.PHONY: gc
gc: gc.tar.gz
tar xfz gc.tar.gz
ln -sf gc?.? gc
$(GC_LIB_A): gc
(cd gc && ./configure --prefix=$(GC_DIR) )
make -C gc
DESTDIR="" make -C gc install
.PHONY: gc-all
gc-all: $(GC_LIB_A)
.PHONY: gc-install
gc-install:
.PHONY: gc-clean
gc-clean:
-@$(RM) -r gc?.? gc
submak = $(MAKE) -C $(patsubst %-$(1),%,$(@)) $(1)
subtgt = $(patsubst %,%-$(1),$(SUBDIRS))
%-all:
$(call submak,all)
%-clean:
-$(call submak,clean)
%-install:
$(call submak,install)
.PHONY: compile
compile: $(call subtgt,all)
.PHONY: install
install: DESTDIR=
install: dist
.PHONY: dist
dist: compile $(call subtgt,install)
.PHONY: clean
clean: $(call subtgt,clean)
-@$(RM) -r build
.PHONY: pristine
pristine: clean
-@$(RM) gc.tar.gz
.PHONY: help
help:
@echo 'Cleaning targets:'
@echo ' clean - clean subdirs and remove the build dir'
@echo ' pristine - clean, then remove the gc tarball'
@echo ''
@echo 'Installation targets:'
@echo ' install - build and install relative to /'
@echo ' dist - build and install relative to DESTDIR (default XEN_ROOT/dist/install)'
@echo ''
@echo 'Compilation targets:'
@echo ' all - same as compile'
@echo ' compile - build everything'
@echo ''
@echo 'To build everything locally use "make" or "make all"'.
@echo 'To build and install into XEN_ROOT/dist/install use "make dist".'
@echo 'To build and install into the system use "make dist".'
@echo 'See ./00README and ./00INSTALL for more information.'
ware/stats/docs/cli.md'>stats
blob: 8684479d0c1d1585119aa05207aa2a4fabe4ea20 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
# QMK CLI :id=qmk-cli
## Overview :id=overview
The QMK CLI makes building and working with QMK keyboards easier. We have provided a number of commands to simplify and streamline tasks such as obtaining and compiling the QMK firmware, creating keymaps, and more.
### Requirements :id=requirements
QMK requires Python 3.6 or greater. We try to keep the number of requirements small but you will also need to install the packages listed in [`requirements.txt`](https://github.com/qmk/qmk_firmware/blob/master/requirements.txt). These are installed automatically when you install the QMK CLI.
### Install Using Homebrew (macOS, some Linux) :id=install-using-homebrew
If you have installed [Homebrew](https://brew.sh) you can tap and install QMK:
```
brew install qmk/qmk/qmk
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
```
### Install Using pip :id=install-using-easy_install-or-pip
If your system is not listed above you can install QMK manually. First ensure that you have Python 3.6 (or later) installed and have installed pip. Then install QMK with this command:
```
python3 -m pip install qmk
export QMK_HOME='~/qmk_firmware' # Optional, set the location for `qmk_firmware`
qmk setup # This will clone `qmk/qmk_firmware` and optionally set up your build environment
```
### Packaging For Other Operating Systems :id=packaging-for-other-operating-systems
We are looking for people to create and maintain a `qmk` package for more operating systems. If you would like to create a package for your OS please follow these guidelines:
* Follow best practices for your OS when they conflict with these guidelines
* Document why in a comment when you do deviate
* Install using a virtualenv
* Instruct the user to set the environment variable `QMK_HOME` to have the firmware source checked out somewhere other than `~/qmk_firmware`.
|