improve Makefile - sob - simple output bar
(HTM) git clone git://git.codemadness.org/sob
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit b3741d9b801de57de4bff7e91bf2f88064b8b411
(DIR) parent bfe40b1849339039727903c1037db44c59580e6e
(HTM) Author: Hiltjo Posthuma <hiltjo@codemadness.org>
Date: Fri, 22 Nov 2019 16:57:58 +0100
improve Makefile
- add make dist rule.
- add README to install rule.
- remove config.mk
- cleanup
Diffstat:
M Makefile | 90 +++++++++++++++++++++----------
D config.mk | 25 -------------------------
2 files changed, 61 insertions(+), 54 deletions(-)
---
(DIR) diff --git a/Makefile b/Makefile
@@ -1,48 +1,80 @@
-include config.mk
+.POSIX:
-SRC = sob.c
+NAME = sob
+VERSION = 0.2
+
+# paths
+PREFIX = /usr/local
+MANPREFIX = ${PREFIX}/man
+DOCPREFIX = ${PREFIX}/share/doc/${NAME}
+
+SOB_CFLAGS = ${CFLAGS}
+SOB_LDFLAGS = ${LDFLAGS}
+SOB_CPPFLAGS = -DVERSION=\"${VERSION}\" -D_POSIX_C_SOURCE=200809L\
+ -D_BSD_SOURCE -D_XOPEN_SOURCE=700
+
+BIN = ${NAME}
+
+SRC = ${NAME}.c
HDR = arg.h config.def.h
+
OBJ = ${SRC:.c=.o}
-all: options sob
+MAN1 = ${NAME}.1
+DOC = \
+ LICENSE\
+ README
-options:
- @echo sob build options:
- @echo "CFLAGS = ${CFLAGS}"
- @echo "LDFLAGS = ${LDFLAGS}"
- @echo "CC = ${CC}"
+all: sob
.c.o:
- @echo CC $<
- @${CC} -c ${CFLAGS} $<
+ ${CC} -c ${SOB_CFLAGS} $<
-${OBJ}: config.mk config.h
+${OBJ}: config.h
config.h:
- @echo creating $@ from config.def.h
- @cp config.def.h $@
+ cp config.def.h $@
sob: ${OBJ}
- @echo CC -o $@
- @${CC} -o $@ ${OBJ} ${LDFLAGS}
+ ${CC} -o $@ ${OBJ} ${SOB_LDFLAGS}
+
+dist:
+ rm -rf "${NAME}-${VERSION}"
+ mkdir -p "${NAME}-${VERSION}"
+ cp -f ${MAN1} ${DOC} ${HDR} \
+ ${SRC} \
+ Makefile \
+ "${NAME}-${VERSION}"
+ # make tarball
+ tar -cf - "${NAME}-${VERSION}" | \
+ gzip -c > "${NAME}-${VERSION}.tar.gz"
+ rm -rf "${NAME}-${VERSION}"
clean:
- @echo cleaning
- @rm -f sob ${OBJ}
+ rm -f ${BIN} ${OBJ}
install: all
- @echo installing executable file to ${DESTDIR}${PREFIX}/bin
- @mkdir -p ${DESTDIR}${PREFIX}/bin
- @cp -f sob ${DESTDIR}${PREFIX}/bin
- @chmod 755 ${DESTDIR}${PREFIX}/bin/sob
- @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1
- @mkdir -p ${DESTDIR}${MANPREFIX}/man1
- @sed "s/VERSION/${VERSION}/g" < sob.1 > ${DESTDIR}${MANPREFIX}/man1/sob.1
+ # installing executable files.
+ mkdir -p ${DESTDIR}${PREFIX}/bin
+ cp -f ${BIN} "${DESTDIR}${PREFIX}/bin"
+ for f in ${BIN}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
+ # installing example files.
+ mkdir -p "${DESTDIR}${DOCPREFIX}"
+ cp -f README \
+ "${DESTDIR}${DOCPREFIX}"
+ # installing manual pages.
+ mkdir -p ${DESTDIR}${MANPREFIX}/man1
+ cp -f ${MAN1} "${DESTDIR}${MANPREFIX}/man1"
+ for m in ${MAN1}; do chmod 644 "${DESTDIR}${MANPREFIX}/man1/$$m"; done
uninstall:
- @echo removing executable file from ${DESTDIR}${PREFIX}/bin
- @rm -f ${DESTDIR}${PREFIX}/bin/sob
- @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1
- @rm -f ${DESTDIR}${MANPREFIX}/man1/sob.1
+ # removing executable files.
+ for f in ${BIN}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
+ # removing example files.
+ rm -f \
+ "${DESTDIR}${DOCPREFIX}/README"
+ -rmdir "${DESTDIR}${DOCPREFIX}"
+ # removing manual pages.
+ for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
-.PHONY: all options clean dist install uninstall
+.PHONY: all clean dist install uninstall
(DIR) diff --git a/config.mk b/config.mk
@@ -1,25 +0,0 @@
-VERSION = 0.2
-
-# Customize below to fit your system
-
-# paths
-PREFIX = /usr/local
-MANPREFIX = ${PREFIX}/share/man
-
-# includes and libs
-INCS = -I. -I/usr/include
-LIBS = -L/usr/lib -lc
-
-# flags
-CPPFLAGS = -DVERSION=\"${VERSION}\" -D_POSIX_C_SOURCE=200809 -D_BSD_SOURCE -D_XOPEN_SOURCE=700
-
-# debug
-#CFLAGS = -g -std=c99 -pedantic -Wall -Wextra -O0 ${INCS} ${CPPFLAGS}
-#LDFLAGS = ${LIBS}
-
-# release
-CFLAGS = -std=c99 -pedantic -Wall -Wextra -Os ${INCS} ${CPPFLAGS}
-LDFLAGS = -s ${LIBS}
-
-# compiler and linker
-CC = cc