commit 4b21641fd14c6dc522ed71a35097f3989268a754
parent 677921a2b4732f208304416deb6882c3a66e5491
Author: Mahdi Mirzade <[email protected]>
Date: Fri, 14 Oct 2022 21:05:17 +0330
Makefile improvements
* Respect system cflags, ldflags, packages can override them all with
TABBED_{CFLAGS,LDFLAGS}. Remove -Wall and -Os and -s.
* Install README as documentation.
* dist: stream directly to a gzipped tarball.
* options: remove it.
* Add ".POSIX:"
* Remove config.mk
Diffstat:
M | Makefile | | | 73 | +++++++++++++++++++++++++++++++++++++++++++------------------------------ |
M | config.mk | | | 27 | ++++++--------------------- |
2 files changed, 49 insertions(+), 51 deletions(-)
diff --git a/Makefile b/Makefile
@@ -1,56 +1,69 @@
-# tabbed - tabbing interface
-# See LICENSE file for copyright and license details.
+.POSIX:
-include config.mk
+NAME = tabbed
+VERSION = 0.7
+
+# paths
+PREFIX = /usr/local
+MANPREFIX = ${PREFIX}/share/man
+DOCPREFIX = ${PREFIX}/share/doc/${NAME}
+
+# use systemflags
+TABBED_CFLAGS = -I/usr/X11R6/include -I/usr/include/freetype2 ${CFLAGS}
+TABBED_LDFLAGS = -L/usr/X11R6/lib -lX11 -lfontconfig -lXft ${LDFLAGS}
+TABBED_CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE
+
+# OpenBSD (uncomment)
+#TABBED_CFLAGS = -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 ${CFLAGS}
SRC = tabbed.c xembed.c
OBJ = ${SRC:.c=.o}
BIN = ${OBJ:.o=}
+MAN1 = ${BIN:=.1}
+HDR = arg.h config.def.h
+DOC = LICENSE README
-all: options ${BIN}
-
-options:
- @echo tabbed build options:
- @echo "CFLAGS = ${CFLAGS}"
- @echo "LDFLAGS = ${LDFLAGS}"
- @echo "CC = ${CC}"
+all: ${BIN}
.c.o:
- ${CC} -c ${CFLAGS} $<
+ ${CC} -o $@ -c $< ${TABBED_CFLAGS} ${TABBED_CPPFLAGS}
-${OBJ}: config.h config.mk
+${OBJ}: config.h
config.h:
cp config.def.h $@
.o:
- ${CC} -o $@ $< ${LDFLAGS}
+ ${CC} -o $@ $< ${TABBED_LDFLAGS}
clean:
- rm -f ${BIN} ${OBJ} tabbed-${VERSION}.tar.gz
+ rm -f ${BIN} ${OBJ} "${NAME}-${VERSION}.tar.gz"
dist: clean
- mkdir -p tabbed-${VERSION}
- cp -R LICENSE Makefile README config.def.h config.mk \
- tabbed.1 xembed.1 arg.h ${SRC} tabbed-${VERSION}
- tar -cf tabbed-${VERSION}.tar tabbed-${VERSION}
- gzip tabbed-${VERSION}.tar
- rm -rf tabbed-${VERSION}
+ mkdir -p "${NAME}-${VERSION}"
+ cp -fR Makefile ${MAN1} ${DOC} ${HDR} ${SRC} "${NAME}-${VERSION}"
+ tar -cf - "${NAME}-${VERSION}" | gzip -c > "${NAME}-${VERSION}.tar.gz"
+ rm -rf ${NAME}-${VERSION}
install: all
+ # installing executable files.
mkdir -p "${DESTDIR}${PREFIX}/bin"
cp -f ${BIN} "${DESTDIR}${PREFIX}/bin"
- chmod 755 "${DESTDIR}${PREFIX}/bin/tabbed"
+ for f in ${BIN}; do chmod 755 "${DESTDIR}${PREFIX}/bin/$$f"; done
+ # installing doc files.
+ mkdir -p "${DESTDIR}${DOCPREFIX}"
+ cp -f README "${DESTDIR}${DOCPREFIX}"
+ # installing manual pages for general commands: section 1.
mkdir -p "${DESTDIR}${MANPREFIX}/man1"
- sed "s/VERSION/${VERSION}/g" < tabbed.1 > "${DESTDIR}${MANPREFIX}/man1/tabbed.1"
- chmod 644 "${DESTDIR}${MANPREFIX}/man1/tabbed.1"
- sed "s/VERSION/${VERSION}/g" < xembed.1 > "${DESTDIR}${MANPREFIX}/man1/xembed.1"
- chmod 644 "${DESTDIR}${MANPREFIX}/man1/xembed.1"
+ for m in ${MAN1}; do sed "s/VERSION/${VERSION}/g" < $$m > "${DESTDIR}${MANPREFIX}/man1/$$m"; done
uninstall:
- rm -f "${DESTDIR}${PREFIX}/bin/tabbed" \
- "${DESTDIR}${PREFIX}/bin/xembed" \
- "${DESTDIR}${MANPREFIX}/man1/tabbed.1" \
- "${DESTDIR}${MANPREFIX}/man1/xembed.1"
+ # removing executable files.
+ for f in ${BIN}; do rm -f "${DESTDIR}${PREFIX}/bin/$$f"; done
+ # removing doc files.
+ rm -f "${DESTDIR}${DOCPREFIX}/README"
+ # removing manual pages.
+ for m in ${MAN1}; do rm -f "${DESTDIR}${MANPREFIX}/man1/$$m"; done
+ -rmdir "${DESTDIR}${DOCPREFIX}"
-.PHONY: all options clean dist install uninstall
+.PHONY: all clean dist install uninstall
diff --git a/config.mk b/config.mk
@@ -1,27 +1,12 @@
-# tabbed version
-VERSION = 0.7
-
# paths
PREFIX = /usr/local
MANPREFIX = ${PREFIX}/share/man
+DOCPREFIX = ${PREFIX}/share/doc/${NAME}
-X11INC = /usr/X11R6/include
-X11LIB = /usr/X11R6/lib
+# use system flags.
+TABBED_CFLAGS = -I/usr/X11R6/include -I/usr/include/freetype2 ${CPPFLAGS}
+TABBED_LDFLAGS = -L/usr/X11R6/lib -lX11 /usr/X11R6/lib ${LDFLAGS}
+TABBED_CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE
-# freetype
-FREETYPELIBS = -lfontconfig -lXft
-FREETYPEINC = /usr/include/freetype2
# OpenBSD (uncomment)
-#FREETYPEINC = ${X11INC}/freetype2
-
-# includes and libs
-INCS = -I. -I/usr/include -I$(X11INC) -I${FREETYPEINC}
-LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${FREETYPELIBS}
-
-# flags
-CPPFLAGS = -DVERSION=\"${VERSION}\" -D_DEFAULT_SOURCE
-CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS}
-LDFLAGS = -s ${LIBS}
-
-# compiler and linker
-CC = cc
+#TABBED_CFLAGS = -I/usr/X11R6/include -I/usr/X11R6/include/freetype2 ${CPPFLAGS}