speedwm-personal/Makefile

258 lines
9.3 KiB
Makefile

# 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} ; 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 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
@echo speedwm build options:
@echo "CFLAGS = [${CFLAGS}]"
@echo "LDFLAGS = [${LDFLAGS}]"
@echo "CC = [${CC}]"
@echo ===========================================
touch drw.o speedwm.o util.o
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/status.def ] || cp -f status docs/status.def || :
cp -f docs/keybinds ${DESTDIR}${PREFIX}/share/speedwm/keybinds
cp -f docs/dependencies ${DESTDIR}${PREFIX}/share/speedwm/dependencies
cp -f docs/doc-01 ${DESTDIR}${PREFIX}/share/speedwm/doc-01
cp -f docs/doc-02 ${DESTDIR}${PREFIX}/share/speedwm/doc-02
cp -f docs/doc-03 ${DESTDIR}${PREFIX}/share/speedwm/doc-03
cp -f docs/doc-04 ${DESTDIR}${PREFIX}/share/speedwm/doc-04
cp -f docs/doc-05 ${DESTDIR}${PREFIX}/share/speedwm/doc-05
cp -f docs/doc-06 ${DESTDIR}${PREFIX}/share/speedwm/doc-06
cp -f docs/doc-07 ${DESTDIR}${PREFIX}/share/speedwm/doc-07
cp -f docs/doc-08 ${DESTDIR}${PREFIX}/share/speedwm/doc-08
cp -f docs/doc-09 ${DESTDIR}${PREFIX}/share/speedwm/doc-09
cp -f docs/doc-10 ${DESTDIR}${PREFIX}/share/speedwm/doc-10
cp -f docs/doc-11 ${DESTDIR}${PREFIX}/share/speedwm/doc-11
cp -f docs/example.Xresources ${DESTDIR}${PREFIX}/share/speedwm/example.Xresources
cp -f docs/example.fsignal ${DESTDIR}${PREFIX}/share/speedwm/example.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-audioctrl ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-audioctrl
cp -f scripts/speedwm-applist ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-applist
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_status ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm_status
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 scripts/speedwm-debug ${DESTDIR}${PREFIX}/bin ; chmod +x ${DESTDIR}${PREFIX}/bin/speedwm-debug
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
[ -f speedwm-msg ] && chmod 755 ${DESTDIR}${PREFIX}/bin/speedwm-msg || :
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 -rf ${DESTDIR}${PREFIX}/bin/speedwm \
${DESTDIR}${PREFIX}/bin/speedwm-utils \
${DESTDIR}${PREFIX}/bin/speedwm_run \
${DESTDIR}${PREFIX}/bin/speedwm_status \
${DESTDIR}${PREFIX}/bin/speedwm-audioctrl \
${DESTDIR}${PREFIX}/bin/speedwm-applist \
${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-core \
${DESTDIR}${PREFIX}/bin/speedwm-dfmpeg \
${DESTDIR}${PREFIX}/bin/speedwm-debug \
${DESTDIR}${PREFIX}/bin/speedwm-msg \
${DESTDIR}${PREFIX}/bin/status \
${DESTDIR}${PREFIX}/share/speedwm \
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 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 uninstall help docs page page_install page_release html markdown readme page_push upload release