# speedwm // minimal X window manager designed for productivity and aesthetics. # See LICENSE file for copyright and license details. # include make config include options.mk include host.mk include toggle.mk SRC = drw.c speedwm.c util.c OBJ = ${SRC:.c=.o} ifdef USEIPC all: options speedwm speedwm-msg else all: options speedwm endif options: @echo speedwm build options: @echo "CFLAGS = [${CFLAGS}]" @echo "LDFLAGS = [${LDFLAGS}]" @echo "CC = [${CC}]" @echo .c.o: ${CC} -c ${CFLAGS} $< ${OBJ}: options.mk speedwm: ${OBJ} ${CC} -o $@ ${OBJ} ${LDFLAGS} ifdef USEIPC speedwm-msg: toggle/ipc-speedwm-msg.o ${CC} -o $@ toggle/ipc-speedwm-msg.c ${LDFLAGS} ; rm -f ipc-speedwm-msg.o endif clean: rm -f speedwm ${OBJ} speedwm-${VERSION}.tar.gz && echo "Cleaned!" dist: clean mkdir -p speedwm-${VERSION} cp -R *.mk *.c *.h *.png docs/ modules/ scripts/ toggle/ status LICENSE Makefile speedwm-${VERSION} tar -cf speedwm-${VERSION}.tar speedwm-${VERSION} gzip speedwm-${VERSION}.tar rm -rf speedwm-${VERSION} speedwm rm -rf speedwm-${VERSION} speedwm-msg install: all @echo speedwm build options: @echo "CFLAGS = [${CFLAGS}]" @echo "LDFLAGS = [${LDFLAGS}]" @echo "CC = [${CC}]" mkdir -p ${DESTDIR}${PREFIX}/bin mkdir -p ${DESTDIR}${PREFIX}/share/speedwm [ -f speedwm-msg ] && cp -f speedwm speedwm-msg ${DESTDIR}${PREFIX}/bin || : [ -f docs/autostart.def.h ] || cp -f autostart.h docs/autostart.def.h || : [ -f docs/options.def.h ] || cp -f options.h docs/options.def.h || : [ -f docs/options.def.mk ] || cp -f options.mk docs/options.def.mk || : [ -f docs/host.def.mk ] || cp -f host.mk docs/host.def.mk || : [ -f docs/rules.def.h ] || cp -f rules.h docs/rules.def.h || : [ -f docs/toggle.def.h ] || cp -f toggle.h docs/toggle.def.h || : [ -f docs/toggle.def.mk ] || cp -f toggle.mk docs/toggle.def.mk || : [ -f docs/keybinds.def.h ] || cp -f keybinds.h docs/keybinds.def.h || : [ -f docs/actions.def.h ] || cp -f actions.h docs/actions.def.h || : [ -f docs/colors.def.h ] || cp -f colors.h docs/colors.def.h || : [ -f docs/colors.def.h ] || cp -f colors.h docs/colors.def.h || : [ -f docs/statusbar.def.h ] || cp -f statusbar.h docs/statusbar.def.h || : [ -f docs/status.def ] || cp -f status docs/status.def || : [ -f speedwm-msg ] && chmod 755 ${DESTDIR}${PREFIX}/bin/speedwm-msg || : [ -f speedwm.png ] && cp -f speedwm.png ${DESTDIR}${PREFIX}/share/pixmaps/speedwm.png || : cp -f docs/keybinds ${DESTDIR}${PREFIX}/share/speedwm/keybinds cp -f docs/dependencies ${DESTDIR}${PREFIX}/share/speedwm/dependencies cp -f docs/doc-* ${DESTDIR}${PREFIX}/share/speedwm/ cp -f docs/example.* ${DESTDIR}${PREFIX}/share/speedwm/ cp -f scripts/speedwm* ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm* cp -f status ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/status chmod +x ./scripts/speedwm-compatcheck chmod +x ./scripts/speedwm-dm chmod 755 ${DESTDIR}${PREFIX}/bin/speedwm ./scripts/speedwm-compatcheck ./scripts/speedwm-dm make modules_install [ -f ${DESTDIR}${PREFIX}/bin/speedwm ] && rm -f drw.o speedwm.o util.o speedwm speedwm-msg || : modules_install: cp -f modules/module_* ${DESTDIR}${PREFIX}/bin chmod +x ${DESTDIR}${PREFIX}/bin/module_* uninstall: rm -rf ${DESTDIR}${PREFIX}/bin/speedwm* ${DESTDIR}${PREFIX}/bin/status docs: chmod +x scripts/speedwm-help ./scripts/speedwm-help -a -o help: @echo -- speedwm Makefile help -- @echo @echo - Installation - @echo install: Installs speedwm. You may need to run this as root. @echo uninstall: Uninstalls speedwm. You may need to run this as root. @echo modules_install: Install modules. @echo @echo - Patching - @echo patch: Create a patch based on modifications to source code. @echo patch_install: Patch the patches directly to source code. @echo patch_remove: Remove the patches from source code. @echo patch_clean: Remove patches for the current directory. @echo patch_remove_backups: Remove backups from docs/. @echo @echo - Documentation - @echo help: Displays this help sheet. @echo docs: View documentation for speedwm @echo html: Write HTML document based on documentation. @echo markdown: Write Markdown document based on documentation. @echo readme: Write output of speedwm-help -a to readme. @echo upload: git commit and git push this build. @echo @echo - Page - @echo page: Creates the https://speedie.gq/speedwm page in HTML form. @echo page_install: Copy the page to ${HTMLDIR}. @echo page_push: git commit and git push the page in ${HTMLDIR}. @echo page page_install page_push to do all of the above page changes instantly. @echo @echo - Releasing - @echo release to run make markdown, make upload, make page, make page_install, make page_push instantly. @echo page_release to run make page, make page_install and make page_push instantly. @echo dist to create a tarball. patch: chmod +x scripts/mkpatch ./scripts/mkpatch -mk @echo Created patches. patch_install: chmod +x scripts/mkpatch ./scripts/mkpatch -p patch_remove: chmod +x scripts/mkpatch ./scripts/mkpatch -r patch_clean: rm -f *.patch @echo Removed patches for cd. patch_remove_backups: rm -f docs/*.def* @echo Removed *.def* files. release: rm -f speedwm.html rm -f readme.html rm -f readme make patch_remove_backups make patch_clean make markdown make upload make page make page_install make page_push rm -f speedwm.html rm -f readme.html rm -f readme @echo "Complete!" page_release: rm -f speedwm.html rm -f readme.html rm -f readme make markdown make page make page_install make page_push rm -f speedwm.html rm -f readme.html rm -f readme @echo "Complete!" upload: make patch_remove_backups make patch_clean chmod +x scripts/speedwm-mkpage ./scripts/speedwm-mkpage -ulspeedwm @echo "Uploaded everything." page: chmod +x scripts/speedwm-mkpage chmod +x scripts/speedwm-help ./scripts/speedwm-mkpage -mkpage page_install: cp speedwm.html ${HTMLDIR} @echo "Copied speedwm.html to ${HTMLDIR}." page_push: echo ${HTMLDIR} > /tmp/speedwm-htmldir chmod +x scripts/speedwm-mkpage chmod +x scripts/speedwm-help ./scripts/speedwm-mkpage -page-push html: chmod +x scripts/speedwm-mkpage chmod +x scripts/speedwm-help ./scripts/speedwm-mkpage -mkhtml markdown: chmod +x scripts/speedwm-mkpage chmod +x scripts/speedwm-help ./scripts/speedwm-mkpage -mkmd readme: chmod +x scripts/speedwm-mkpage chmod +x scripts/speedwm-help ./scripts/speedwm-mkpage -mk .PHONY: all options clean dist install modules_install uninstall help docs page page_install page_release html markdown readme page_push upload release