# ========================= # config # ========================= PREFIX = /usr/local MANPREFIX = ${PREFIX}/share/man X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib FREETYPEINC = /usr/include/freetype2 FREETYPELIBS= -lfontconfig -lXft XINERAMAFLAGS = -DXINERAMA XINERAMALIBS = -lXinerama # ========================= # flags # ========================= INCS = \ -I${X11INC} \ -I${FREETYPEINC} \ -I./src \ -I./src/drw \ -I./src/util CPPFLAGS = \ -D_DEFAULT_SOURCE \ -D_BSD_SOURCE \ -D_XOPEN_SOURCE=700L \ -DVERSION=\"${VERSION}\" \ ${XINERAMAFLAGS} CFLAGS = \ -std=c99 \ -pedantic \ -Wall \ -Wno-deprecated-declarations \ -Os \ ${INCS} \ ${CPPFLAGS} LDFLAGS = \ -L${X11LIB} \ -lX11 \ ${XINERAMALIBS} \ ${FREETYPELIBS} \ -lX11-xcb \ -lxcb \ -lxcb-res CC = clang # ========================= # sources # ========================= SRC = \ src/core/dwm.c \ src/drw/drw.c \ src/util/util.c # src/core/globals.c \ # src/x11/xevents.c \ # src/x11/xutil.c \ # src/wm/client.c \ # src/wm/monitor.c \ # src/wm/layout.c \ # src/ui/input.c \ # src/ui/bar.c \ # src/ui/systray.c \ OBJ = ${SRC:.c=.o} # ========================= # build rules # ========================= all: dwm %.o: %.c ${CC} -c ${CFLAGS} -o $@ $< dwm: ${OBJ} ${CC} -o $@ ${OBJ} ${LDFLAGS} # ========================= # install # ========================= install: dwm mkdir -p ${DESTDIR}${PREFIX}/bin cp -f dwm ${DESTDIR}${PREFIX}/bin chmod 755 ${DESTDIR}${PREFIX}/bin/dwm mkdir -p ${DESTDIR}${MANPREFIX}/man1 sed "s/VERSION/${VERSION}/g" < assets/dwm.1 > ${DESTDIR}${MANPREFIX}/man1/dwm.1 chmod 644 ${DESTDIR}${MANPREFIX}/man1/dwm.1 uninstall: rm -f ${DESTDIR}${PREFIX}/bin/dwm \ ${DESTDIR}${MANPREFIX}/man1/dwm.1 # ========================= # housekeeping # ========================= clean: rm -f dwm ${OBJ} .PHONY: all clean install uninstall