Makefile (1872B)
1 include config.mk 2 3 all: quick_debug 4 5 quick_release: 6 $(MAKE) -j$$(( 10 * $(shell nproc) )) release 7 8 quick_debug: 9 $(MAKE) -j$$(( 10 * $(shell nproc) )) debug 10 11 debug: CXXFLAGS += $(DEBUG_CXXFLAGS) 12 debug: LDFLAGS += $(DEBUG_LDFLAGS) 13 debug: winsys 14 debug: core 15 debug: client 16 debug: bar 17 +$(MAKE) run tags 18 19 release: CXXFLAGS += $(RELEASE_CXXFLAGS) 20 release: LDFLAGS += $(RELEASE_LDFLAGS) 21 release: winsys 22 release: core 23 release: client 24 release: bar 25 26 install: 27 install -m0755 $(BINDIR)/$(PROJECT) $(DESTDIR)$(INSTALLDIR)/$(PROJECT) 28 install -m0755 $(BINDIR)/$(CLIENT) $(DESTDIR)$(INSTALLDIR)/$(CLIENT) 29 install -m0755 $(BINDIR)/$(BAR) $(DESTDIR)$(INSTALLDIR)/$(BAR) 30 31 winsys: bin obj ${WINSYS_LINK_FILES} 32 33 core: bin obj ${CORE_LINK_FILES} 34 ${CC} ${CXXFLAGS} ${CORE_LINK_FILES} ${LDFLAGS} -o $(BINDIR)/$(PROJECT) 35 36 client: bin obj ${CLIENT_LINK_FILES} 37 ${CC} ${CXXFLAGS} ${CLIENT_LINK_FILES} ${LDFLAGS} -o $(BINDIR)/$(CLIENT) 38 39 bar: bin obj ${BAR_LINK_FILES} 40 ${CC} ${CXXFLAGS} ${BAR_LINK_FILES} ${LDFLAGS} -o $(BINDIR)/$(BAR) 41 42 -include $(DEPS) 43 44 obj/%.o: obj 45 46 obj/winsys/%.o: src/winsys/%.cc 47 ${CC} ${CXXFLAGS} -MMD -c $< -o $@ 48 49 obj/winsys/xdata/%.o: src/winsys/xdata/%.cc 50 ${CC} ${CXXFLAGS} -MMD -c $< -o $@ 51 52 obj/core/%.o: src/core/%.cc 53 ${CC} ${CXXFLAGS} -MMD -c $< -o $@ 54 55 obj/client/%.o: src/client/%.cc 56 ${CC} ${CXXFLAGS} -MMD -c $< -o $@ 57 58 obj/bar/%.o: src/bar/%.cc 59 ${CC} ${CXXFLAGS} -MMD -c $< -o $@ 60 61 run: 62 @echo [running] 63 @./launch 64 65 bin: 66 @[ -d bin ] || mkdir bin 67 68 obj: 69 @[ -d obj ] || mkdir -p obj/{winsys/xdata,core,client,bar} 70 71 notify-core: 72 @echo [building core] 73 74 notify-client: 75 @echo [building client] 76 77 notify-bar: 78 @echo [building bar] 79 80 notify-link: 81 @echo [linking] 82 83 .PHONY: tags 84 tags: 85 @echo [generating tags] 86 @git ls-files | ctags -R --exclude=.git --c++-kinds=+p --links=no --fields=+iaS --extras=+q -L- 87 88 .PHONY: clean 89 clean: 90 @echo [cleaning] 91 @rm -rf ./bin ./obj