speedwm-personal/Makefile
speediegq 776a054830 Rework status functionality, save status bar to file, update various
other scripts by default so that all dependencies are forced. This is so
that people will actually install the dependencies. They are still not
100% forced as you can remove the line from Makefile.
2022-10-01 17:29:31 +02:00

246 lines
8.8 KiB
Makefile

# 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 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
mkdir -p ${DESTDIR}${PREFIX}/share/speedwm
[ -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 || :
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-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-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 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
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-pdfopen \
${DESTDIR}${PREFIX}/bin/speedwm-core \
${DESTDIR}${PREFIX}/bin/speedwm-dfmpeg \
${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