CC = cc CFLAGS = -Wall -pipe -Og -g -march=native USEXRANDR = 1 SHAREPATH = /usr/local/share/thornWM DOCPATH = /usr/local/share/man PROGPATH = /usr/local/bin CONFPATH = /etc/xdg/thornWM ifeq ($(USEXRANDR), 1) XFLAGS+=-lXrandr CFLAGS+=-DL_XRANDR else XFLAGS+=-lXinerama endif LUA_VERSION = 5.1 ifeq ($(LUA_VERSION), jit) CFLAGS += `pkg-config --cflags luajit || echo -I/usr/include/lua{,5.1}` else ifeq ($(LUA_VERSION), 5.1) CFLAGS += `pkg-config --cflags lua5.1 --silence-errors` else ifeq ($(LUA_VERSION), 5.2) CFLAGS += `pkg-config --cflags lua5.2 --silence-errors` else ifeq ($(LUA_VERSION), 5.3) CFLAGS += `pkg-config --cflags lua5.3 --silence-errors` else ifeq ($(LUA_VERSION), 5.4) CFLAGS += `pkg-config --cflags lua5.4 --silence-errors` else $(error Invalid Lua version $(LUA_VERSION)) endif all: libs docs libs: lib/x.so lib/c.so docs: docs/thornWM.x.3 docs/thornWM.c.3 docs/thornWM.async.3 docs/thornWM.ewmh.3 docs/thornWM.tree.3 install: installProgram installLibs installDocs uninstall: uninstallProgram uninstallLibs uninstallDocs .PHONY: all libs docs install uninstall installProgram installLibs installDocs uninstallProgram uninstallLibs uninstallDocs # PROGRAM installProgram: mkdir -p $(PROGPATH) $(CONFPATH) cp thornWM $(PROGPATH)/ cp config.lua $(CONFPATH)/ uninstallProgram: rm -f $(PROGPATH)/thornWM $(CONFPATH)/config.lua rmdir --ignore-fail-on-non-empty $(PROGPATH) $(CONFPATH) # LIBS lib/x.so: src/x.c src/common.h makefile @echo $(CC) $< $@ @$(CC) $< -o $@ -lX11 $(CFLAGS) -shared -fPIC $(XFLAGS) lib/c.so: src/c.c src/common.h makefile @echo $(CC) $< $@ @$(CC) $< -o $@ $(CFLAGS) -shared -fPIC installLibs: libs mkdir -p $(SHAREPATH)/lib cp lib/* $(SHAREPATH)/lib/ uninstallLibs: rm -f $(SHAREPATH)/*.lua $(SHAREPATH)/*.so rmdir --ignore-fail-on-non-empty $(SHAREPATH) $(SHAREPATH)/lib # DOCS docs/thornWM.%.3: src/%.c docs/genDocs docs/genDocs $< $@ docs/thornWM.%.3: lib/%.lua docs/genDocs docs/genDocs $< $@ docs/thornWM.%.3: lib/%/init.lua docs/genDocs docs/genDocs $< $@ installDocs: docs mkdir -p $(DOCPATH)/man{1,3} cp docs/thornWM.1 $(DOCPATH)/man1/ cp docs/*.3 $(DOCPATH)/man3/ uninstallDocs: rm -f $(DOCPATH)/man3/thornWM.x.3 $(DOCPATH)/man3/thornWM.async.3 $(DOCPATH)/man3/thornWM.c.3 \ $(DOCPATH)/man3/thornWM.ewmh.3 $(DOCPATH)/man3/thornWM.tree.3 $(DOCPATH)/man1/thornWM.1 rmdir --ignore-fail-on-non-empty $(DOCPATH) clean: rm -fv -- lib/*.so docs/*.3 .PHONY: all libs docs intsall installProgram installDocs installLibs clean