X-Git-Url: https://git.xinqibao.xyz/slstatus.git/blobdiff_plain/13604963bc589ab9281da03b1f76b8db7e21daa7..cd884c2f0a585f8c6a49f1faacacb7925d75dbb0:/Makefile diff --git a/Makefile b/Makefile index 6cba860..5756418 100644 --- a/Makefile +++ b/Makefile @@ -1,61 +1,87 @@ -# See LICENSE file for copyright and license details. +# See LICENSE file for copyright and license details +# slstatus - suckless status monitor +.POSIX: include config.mk -NAME=slstatus +REQ = util +COM =\ + components/battery\ + components/cpu\ + components/datetime\ + components/disk\ + components/entropy\ + components/hostname\ + components/ip\ + components/kernel_release\ + components/keyboard_indicators\ + components/keymap\ + components/load_avg\ + components/netspeeds\ + components/num_files\ + components/ram\ + components/run_command\ + components/swap\ + components/temperature\ + components/uptime\ + components/user\ + components/volume\ + components/wifi -SRC = ${NAME}.c -OBJ = ${SRC:.c=.o} +all: slstatus -all: options ${NAME} - -options: - @echo ${NAME} build options: - @echo "CFLAGS = ${CFLAGS}" - @echo "LDFLAGS = ${LDFLAGS}" - @echo "CC = ${CC}" +components/battery.o: components/battery.c config.mk $(REQ:=.h) +components/cpu.o: components/cpu.c config.mk $(REQ:=.h) +components/datetime.o: components/datetime.c config.mk $(REQ:=.h) +components/disk.o: components/disk.c config.mk $(REQ:=.h) +components/entropy.o: components/entropy.c config.mk $(REQ:=.h) +components/hostname.o: components/hostname.c config.mk $(REQ:=.h) +components/ip.o: components/ip.c config.mk $(REQ:=.h) +components/kernel_release.o: components/kernel_release.c config.mk $(REQ:=.h) +components/keyboard_indicators.o: components/keyboard_indicators.c config.mk $(REQ:=.h) +components/keymap.o: components/keymap.c config.mk $(REQ:=.h) +components/load_avg.o: components/load_avg.c config.mk $(REQ:=.h) +components/netspeeds.o: components/netspeeds.c config.mk $(REQ:=.h) +components/num_files.o: components/num_files.c config.mk $(REQ:=.h) +components/ram.o: components/ram.c config.mk $(REQ:=.h) +components/run_command.o: components/run_command.c config.mk $(REQ:=.h) +components/swap.o: components/swap.c config.mk $(REQ:=.h) +components/temperature.o: components/temperature.c config.mk $(REQ:=.h) +components/uptime.o: components/uptime.c config.mk $(REQ:=.h) +components/user.o: components/user.c config.mk $(REQ:=.h) +components/volume.o: components/volume.c config.mk $(REQ:=.h) +components/wifi.o: components/wifi.c config.mk $(REQ:=.h) +slstatus.o: slstatus.c slstatus.h arg.h config.h config.mk $(REQ:=.h) .c.o: - @echo CC $< - @${CC} -c ${CFLAGS} $< - -${OBJ}: config.h config.mk + $(CC) -o $@ -c $(CPPFLAGS) $(CFLAGS) $< config.h: - @echo creating $@ from config.def.h - @cp config.def.h $@ + cp config.def.h $@ -${NAME}: ${OBJ} - @echo CC -o $@ - @${CC} -o $@ ${OBJ} ${LDFLAGS} +slstatus: slstatus.o $(COM:=.o) $(REQ:=.o) + $(CC) -o $@ $(LDFLAGS) $(COM:=.o) $(REQ:=.o) slstatus.o $(LDLIBS) clean: - @echo cleaning - @rm -f ${NAME} ${OBJ} ${NAME}.tar.gz - -dist: clean - @echo creating dist tarball - @mkdir -p ${NAME} - @cp -R Makefile config.mk LICENSE \ - ${SRC} ${NAME} - @tar -cf ${NAME}.tar ${NAME} - @gzip ${NAME}.tar - @rm -rf ${NAME} + rm -f slstatus slstatus.o $(COM:=.o) $(REQ:=.o) + +dist: + rm -rf "slstatus-$(VERSION)" + mkdir -p "slstatus-$(VERSION)/components" + cp -R LICENSE Makefile README config.mk config.def.h \ + arg.h slstatus.c $(COM:=.c) $(REQ:=.c) $(REQ:=.h) \ + slstatus.1 "slstatus-$(VERSION)" + tar -cf - "slstatus-$(VERSION)" | gzip -c > "slstatus-$(VERSION).tar.gz" + rm -rf "slstatus-$(VERSION)" install: all - @echo installing executable file to ${DESTDIR}${PREFIX}/bin - @mkdir -p ${DESTDIR}${PREFIX}/bin - @cp -f ${NAME} ${DESTDIR}${PREFIX}/bin - @chmod 755 ${DESTDIR}${PREFIX}/bin/${NAME} - @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 - @mkdir -p ${DESTDIR}${MANPREFIX}/man1 - @cp -f ${NAME}.1 ${DESTDIR}${MANPREFIX}/man1 - @chmod 644 ${DESTDIR}${MANPREFIX}/man1/${NAME}.1 + mkdir -p "$(DESTDIR)$(PREFIX)/bin" + cp -f slstatus "$(DESTDIR)$(PREFIX)/bin" + chmod 755 "$(DESTDIR)$(PREFIX)/bin/slstatus" + mkdir -p "$(DESTDIR)$(MANPREFIX)/man1" + cp -f slstatus.1 "$(DESTDIR)$(MANPREFIX)/man1" + chmod 644 "$(DESTDIR)$(MANPREFIX)/man1/slstatus.1" uninstall: - @echo removing executable file from ${DESTDIR}${PREFIX}/bin - @rm -f ${DESTDIR}${PREFIX}/bin/${NAME} - @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1 - @rm -f ${DESTDIR}${MANPREFIX}/man1/${NAME}.1 - -.PHONY: all options clean dist install uninstall + rm -f "$(DESTDIR)$(PREFIX)/bin/slstatus" + rm -f "$(DESTDIR)$(MANPREFIX)/man1/slstatus.1"