| TESTS := stdc stdc++ python2 python3 javascript | |
| check: $(TESTS) | |
| @set -e; for fn in $(TESTS); do \ | |
| ./$$fn; \ | |
| echo $$fn: OK; \ | |
| done | |
| @echo Done. | |
| GEN := ../tools/keymap-gen | |
| DATA := ../data/keymaps.csv | |
| SOURCES := $(GEN) $(DATA) | |
| .DELETE_ON_ERROR: | |
| stdc: stdc.c osx2win32.h osx2win32.c osx2win32_name.h osx2win32_name.c \ | |
| osx2xkb.h osx2xkb.c osx2xkb_name.h osx2xkb_name.c \ | |
| html2win32.h html2win32.c html2win32_name.h html2win32_name.c \ | |
| osx.h osx.c osx_name.h osx_name.c | |
| $(CC) -Wall -o $@ $(filter %.c, $^) | |
| osx2win32.c: $(SOURCES) | |
| $(GEN) --lang stdc code-map $(DATA) osx win32 > $@ | |
| osx2win32.h: $(SOURCES) | |
| $(GEN) --lang stdc-header code-map $(DATA) osx win32 > $@ | |
| osx2win32_name.c: $(SOURCES) | |
| $(GEN) --lang stdc name-map $(DATA) osx win32 > $@ | |
| osx2win32_name.h: $(SOURCES) | |
| $(GEN) --lang stdc-header name-map $(DATA) osx win32 > $@ | |
| osx2xkb.c: $(SOURCES) | |
| $(GEN) --lang stdc code-map $(DATA) osx xkb > $@ | |
| osx2xkb.h: $(SOURCES) | |
| $(GEN) --lang stdc-header code-map $(DATA) osx xkb > $@ | |
| osx2xkb_name.c: $(SOURCES) | |
| $(GEN) --lang stdc name-map $(DATA) osx xkb > $@ | |
| osx2xkb_name.h: $(SOURCES) | |
| $(GEN) --lang stdc-header name-map $(DATA) osx xkb > $@ | |
| html2win32.c: $(SOURCES) | |
| $(GEN) --lang stdc code-map $(DATA) html win32 > $@ | |
| html2win32.h: $(SOURCES) | |
| $(GEN) --lang stdc-header code-map $(DATA) html win32 > $@ | |
| html2win32_name.c: $(SOURCES) | |
| $(GEN) --lang stdc name-map $(DATA) html win32 > $@ | |
| html2win32_name.h: $(SOURCES) | |
| $(GEN) --lang stdc-header name-map $(DATA) html win32 > $@ | |
| osx.c: $(SOURCES) | |
| $(GEN) --lang stdc code-table $(DATA) osx > $@ | |
| osx.h: $(SOURCES) | |
| $(GEN) --lang stdc-header code-table $(DATA) osx > $@ | |
| osx_name.c: $(SOURCES) | |
| $(GEN) --lang stdc name-table $(DATA) osx > $@ | |
| osx_name.h: $(SOURCES) | |
| $(GEN) --lang stdc-header name-table $(DATA) osx > $@ | |
| stdc++: stdc++.cc osx2win32.hh osx2win32.cc osx2win32_name.hh osx2win32_name.cc \ | |
| osx2xkb.hh osx2xkb.cc osx2xkb_name.hh osx2xkb_name.cc \ | |
| html2win32.hh html2win32.cc html2win32_name.hh html2win32_name.cc \ | |
| osx.hh osx.cc osx_name.hh osx_name.cc | |
| $(CXX) -Wall -std=c++11 -o $@ $(filter %.cc, $^) | |
| osx2win32.cc: $(SOURCES) | |
| $(GEN) --lang stdc++ code-map $(DATA) osx win32 > $@ | |
| osx2win32.hh: $(SOURCES) | |
| $(GEN) --lang stdc++-header code-map $(DATA) osx win32 > $@ | |
| osx2win32_name.cc: $(SOURCES) | |
| $(GEN) --lang stdc++ name-map $(DATA) osx win32 > $@ | |
| osx2win32_name.hh: $(SOURCES) | |
| $(GEN) --lang stdc++-header name-map $(DATA) osx win32 > $@ | |
| osx2xkb.cc: $(SOURCES) | |
| $(GEN) --lang stdc++ code-map $(DATA) osx xkb > $@ | |
| osx2xkb.hh: $(SOURCES) | |
| $(GEN) --lang stdc++-header code-map $(DATA) osx xkb > $@ | |
| osx2xkb_name.cc: $(SOURCES) | |
| $(GEN) --lang stdc++ name-map $(DATA) osx xkb > $@ | |
| osx2xkb_name.hh: $(SOURCES) | |
| $(GEN) --lang stdc++-header name-map $(DATA) osx xkb > $@ | |
| html2win32.cc: $(SOURCES) | |
| $(GEN) --lang stdc++ code-map $(DATA) html win32 > $@ | |
| html2win32.hh: $(SOURCES) | |
| $(GEN) --lang stdc++-header code-map $(DATA) html win32 > $@ | |
| html2win32_name.cc: $(SOURCES) | |
| $(GEN) --lang stdc++ name-map $(DATA) html win32 > $@ | |
| html2win32_name.hh: $(SOURCES) | |
| $(GEN) --lang stdc++-header name-map $(DATA) html win32 > $@ | |
| osx.cc: $(SOURCES) | |
| $(GEN) --lang stdc++ code-table $(DATA) osx > $@ | |
| osx.hh: $(SOURCES) | |
| $(GEN) --lang stdc++-header code-table $(DATA) osx > $@ | |
| osx_name.cc: $(SOURCES) | |
| $(GEN) --lang stdc++ name-table $(DATA) osx > $@ | |
| osx_name.hh: $(SOURCES) | |
| $(GEN) --lang stdc++-header name-table $(DATA) osx > $@ | |
| python2: osx2win32.py osx2win32_name.py \ | |
| osx2xkb.py osx2xkb_name.py \ | |
| html2win32.py html2win32_name.py \ | |
| osx.py osx_name.py | |
| osx2win32.py: $(SOURCES) | |
| $(GEN) --lang python2 code-map $(DATA) osx win32 > $@ | |
| osx2win32_name.py: $(SOURCES) | |
| $(GEN) --lang python2 name-map $(DATA) osx win32 > $@ | |
| osx2xkb.py: $(SOURCES) | |
| $(GEN) --lang python2 code-map $(DATA) osx xkb > $@ | |
| osx2xkb_name.py: $(SOURCES) | |
| $(GEN) --lang python2 name-map $(DATA) osx xkb > $@ | |
| html2win32.py: $(SOURCES) | |
| $(GEN) --lang python2 code-map $(DATA) html win32 > $@ | |
| html2win32_name.py: $(SOURCES) | |
| $(GEN) --lang python2 name-map $(DATA) html win32 > $@ | |
| osx.py: $(SOURCES) | |
| $(GEN) --lang python2 code-table $(DATA) osx > $@ | |
| osx_name.py: $(SOURCES) | |
| $(GEN) --lang python2 name-table $(DATA) osx > $@ | |
| javascript: node_modules/babel-core \ | |
| node_modules/babel-plugin-transform-es2015-modules-commonjs \ | |
| osx2win32.js osx2win32_name.js \ | |
| osx2xkb.js osx2xkb_name.js \ | |
| html2win32.js html2win32_name.js \ | |
| osx.js osx_name.js | |
| node_modules/babel-core: | |
| npm install babel-core | |
| node_modules/babel-plugin-transform-es2015-modules-commonjs: | |
| npm install babel-plugin-transform-es2015-modules-commonjs | |
| osx2win32.js: $(SOURCES) | |
| $(GEN) --lang js code-map $(DATA) osx win32 > $@ | |
| osx2win32_name.js: $(SOURCES) | |
| $(GEN) --lang js name-map $(DATA) osx win32 > $@ | |
| osx2xkb.js: $(SOURCES) | |
| $(GEN) --lang js code-map $(DATA) osx xkb > $@ | |
| osx2xkb_name.js: $(SOURCES) | |
| $(GEN) --lang js name-map $(DATA) osx xkb > $@ | |
| html2win32.js: $(SOURCES) | |
| $(GEN) --lang js code-map $(DATA) html win32 > $@ | |
| html2win32_name.js: $(SOURCES) | |
| $(GEN) --lang js name-map $(DATA) html win32 > $@ | |
| osx.js: $(SOURCES) | |
| $(GEN) --lang js code-table $(DATA) osx > $@ | |
| osx_name.js: $(SOURCES) | |
| $(GEN) --lang js name-table $(DATA) osx > $@ | |
| clean: | |
| rm -rf node_modules | |
| rm -f osx2win32.* | |
| rm -f osx2win32_name.* | |
| rm -f osx2xkb.* | |
| rm -f osx2xkb_name.* | |
| rm -f html2win32.* | |
| rm -f html2win32_name.* | |
| rm -f osx.* | |
| rm -f osx_name.* | |
| rm -f stdc stdc++ |