speedwm-personal/Makefile
speedie a258afba18 Add IPC patch, add as an option. Will likely simplify this soon but for
now, edit config,mk and enable it in toggle.h. It is enabled by default
but not compatible with BSD so comment the lines if you use that.
2022-08-26 11:41:11 +02:00

192 lines
7.3 KiB
Makefile

# speedwm // minimal X window manager designed for productivity and aesthetics.
# See LICENSE file for copyright and license details.
include config.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}: config.mk
speedwm: ${OBJ}
${CC} -o $@ ${OBJ} ${LDFLAGS} ; rm -f *.o
ifdef USEIPC
speedwm-msg: speedwm-msg.o
${CC} -o $@ $< ${LDFLAGS} ; rm -f speedwm-msg.o
endif
clean:
rm -f speedwm ${OBJ} speedwm-spde-${VERSION}.tar.gz && echo "Cleaned!"
dist: clean
mkdir -p speedwm-spde-${VERSION}
cp -R *.mk *.c *.h *.png docs patches status LICENSE Makefile scripts speedwm-spde-${VERSION}
tar -cf speedwm-spde-${VERSION}.tar speedwm-spde-${VERSION}
gzip speedwm-spde-${VERSION}.tar
rm -rf speedwm-spde-${VERSION} speedwm
rm -rf speedwm-spde-${VERSION} speedwm-msg
install: all
touch drw.o speedwm.o util.o
mkdir -p ${DESTDIR}${PREFIX}/bin
cp -f speedwm speedwm-msg ${DESTDIR}${PREFIX}/bin
chmod 755 ${DESTDIR}${PREFIX}/bin/speedwm
[ -f speedwm-msg ] && chmod 755 ${DESTDIR}${PREFIX}/bin/speedwm-msg || :
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/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 help
@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 libxftfix: This option compiles and installs libXft-bgra which is necessary to prevent speedwm from crashing.
@echo gentoo-libxftfix: This option installs libXft-bgra by patching it for Gentoo only.
@echo arch-libxftfix: This option installs libXft-bgra using the AUR on Arch Linux only.
@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 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 make page page_install page_push to do all of the above page changes instantly.
@echo make release to run make markdown, make upload, make page, make page_install, make page_push instantly.
release:
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!"
upload:
chmod +x scripts/speedwm-mkpage
./scripts/speedwm-mkpage -ulspeedwm
@echo "Uploaded everything."
libxftfix:
chmod +x scripts/libxftfix
./scripts/libxftfix -source
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
gentoo-libxftfix:
chmod +x scripts/libxftfix
./scripts/libxftfix -gentoo
arch-libxftfix:
chmod +x scripts/libxftfix
./scripts/libxftfix -arch
.PHONY: all options clean dist install uninstall help libxftfix gentoo-libxftfix arch-libxftfix docs page page_install html markdown readme page_push upload release