# speedwm // minimal X window manager designed for productivity and aesthetics. # See LICENSE file for copyright and license details. include options.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}" .c.o: ${CC} -c ${CFLAGS} $< ${OBJ}: options.mk speedwm: ${OBJ} ${CC} -o $@ ${OBJ} ${LDFLAGS} ; rm -f *.o 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 patches status LICENSE Makefile scripts 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 touch drw.o speedwm.o util.o mkdir -p ${DESTDIR}${PREFIX}/bin [ -f speedwm-msg ] && cp -f speedwm speedwm-msg ${DESTDIR}${PREFIX}/bin || : [ -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/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 speedwm-msg ] && chmod 755 ${DESTDIR}${PREFIX}/bin/speedwm-msg || : chmod 755 ${DESTDIR}${PREFIX}/bin/speedwm cp -f docs/bindlist ${DESTDIR}${PREFIX}/share/speedwm-bindlist cp -f docs/deplist ${DESTDIR}${PREFIX}/share/speedwm-deplist cp -f docs/about ${DESTDIR}${PREFIX}/share/speedwm-about cp -f docs/about2 ${DESTDIR}${PREFIX}/share/speedwm-about-2 cp -f docs/about3 ${DESTDIR}${PREFIX}/share/speedwm-about-3 cp -f docs/about4 ${DESTDIR}${PREFIX}/share/speedwm-about-4 cp -f docs/about5 ${DESTDIR}${PREFIX}/share/speedwm-about-5 cp -f docs/example.Xresources ${DESTDIR}${PREFIX}/share/speedwm-xresources cp -f docs/example.fsignal ${DESTDIR}${PREFIX}/share/speedwm-fsignal cp -f scripts/speedwm-help ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-help cp -f scripts/speedwm-shutdown ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-shutdown cp -f scripts/speedwm-winnav ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-winnav cp -f scripts/speedwm-utils ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-utils cp -f scripts/speedwm-swal ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-swal cp -f scripts/speedwm-screenshotutil ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-screenshotutil cp -f scripts/speedwm-virtualkeyboard ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-virtualkeyboard cp -f scripts/speedwm-pdfopen ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-pdfopen cp -f scripts/speedwm-audioctrl ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-audioctrl cp -f scripts/speedwm-netctrl ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-netctrl cp -f scripts/speedwm-btctrl ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-btctrl cp -f scripts/speedwm_run ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm_run cp -f scripts/speedwm-core ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-core cp -f scripts/speedwm-dfmpeg ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-dfmpeg cp -f status ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/status chmod +x ./scripts/speedwm-compatcheck chmod +x ./scripts/speedwm-dm mkdir -p /usr/share echo "${DESTDIR}${PREFIX}/bin/" > /usr/share/speedwm-bindir ./scripts/speedwm-compatcheck ./scripts/speedwm-dm [ -f speedwm.png ] && cp -f speedwm.png ${DESTDIR}${PREFIX}/share/pixmaps/speedwm.png || : rm -f drw.o speedwm.o util.o speedwm speedwm-msg ; echo "Installed speedwm to ${DESTDIR}${PREFIX}/bin" uninstall: rm -f ${DESTDIR}${PREFIX}/bin/speedwm \ ${DESTDIR}${PREFIX}/bin/speedwm-utils \ ${DESTDIR}${PREFIX}/bin/speedwm-audioctrl \ ${DESTDIR}${PREFIX}/bin/speedwm-winnav \ ${DESTDIR}${PREFIX}/bin/speedwm-shutdown \ ${DESTDIR}${PREFIX}/bin/speedwm-swal \ ${DESTDIR}${PREFIX}/bin/speedwm-help \ ${DESTDIR}${PREFIX}/bin/speedwm-netctrl \ ${DESTDIR}${PREFIX}/bin/speedwm-btctrl \ ${DESTDIR}${PREFIX}/bin/speedwm-screenshotutil \ ${DESTDIR}${PREFIX}/bin/speedwm-virtualkeyboard \ ${DESTDIR}${PREFIX}/bin/speedwm-pdfopen \ ${DESTDIR}${PREFIX}/bin/speedwm-core \ ${DESTDIR}${PREFIX}/bin/speedwm-dfmpeg \ ${DESTDIR}${PREFIX}/bin/speedwm-msg \ ${DESTDIR}${PREFIX}/bin/status \ ${DESTDIR}${PREFIX}/share/speedwm-bindlist \ ${DESTDIR}${PREFIX}/share/speedwm-deplist \ ${DESTDIR}${PREFIX}/share/speedwm-about \ ${DESTDIR}${PREFIX}/share/speedwm-about-2 \ ${DESTDIR}${PREFIX}/share/speedwm-about-3 \ ${DESTDIR}${PREFIX}/share/speedwm-about-4 \ ${DESTDIR}${PREFIX}/share/speedwm-about-5 \ ${DESTDIR}${PREFIX}/share/speedwm-xresources \ ${DESTDIR}${PREFIX}/share/speedwm-fsignal \ 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 @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 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: 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 uninstall help docs page page_install page_release html markdown readme page_push upload release