From c870098b82f1dfc3cd59cd8c90cea580bd01cb47 Mon Sep 17 00:00:00 2001 From: Quentin Rameau Date: Sat, 29 Apr 2017 15:21:49 +0200 Subject: [PATCH] Arrange Makefile Let the user specify his own C and LD FLAGS. Remove unuseful and non portable CFLAGS like pendantic and Wall. --- Makefile | 63 ++++++++++++++++++++++++++++++------------------------- config.mk | 18 ++++++++-------- 2 files changed, 43 insertions(+), 38 deletions(-) diff --git a/Makefile b/Makefile index a9d4d1d..d32d330 100644 --- a/Makefile +++ b/Makefile @@ -1,61 +1,66 @@ # surf - simple browser # See LICENSE file for copyright and license details. +.POSIX: include config.mk SRC = surf.c -OBJ = ${SRC:.c=.o} +OBJ = $(SRC:.c=.o) all: options surf options: @echo surf build options: - @echo "CFLAGS = ${CFLAGS}" - @echo "LDFLAGS = ${LDFLAGS}" - @echo "CC = ${CC}" + @echo "CFLAGS = $(SURF_CFLAGS)" + @echo "LDFLAGS = $(SURF_LDFLAGS)" + @echo "CC = $(CC)" .c.o: - @echo CC $< - @${CC} -c ${CFLAGS} $< + @echo CC -c $< + @$(CC) $(SURF_CFLAGS) -c $< -${OBJ}: config.h config.mk +$(OBJ): config.h config.mk config.h: @echo creating $@ from config.def.h @cp config.def.h $@ -surf: ${OBJ} +surf: $(OBJ) @echo CC -o $@ - @${CC} -o $@ surf.o ${LDFLAGS} + @$(CC) $(SURF_CFLAGS) -o $@ $(OBJ) $(SURF_LDFLAGS) clean: @echo cleaning - @rm -f surf ${OBJ} surf-${VERSION}.tar.gz + @rm -f surf $(OBJ) -dist: clean +distclean: clean + @echo cleaning dist + @rm -f config.h surf-$(VERSION).tar.gz + +dist: distclean @echo creating dist tarball - @mkdir -p surf-${VERSION} + @mkdir -p surf-$(VERSION) @cp -R LICENSE Makefile config.mk config.def.h README \ - surf-open.sh arg.h TODO.md surf.png \ - surf.1 ${SRC} surf-${VERSION} - @tar -cf surf-${VERSION}.tar surf-${VERSION} - @gzip surf-${VERSION}.tar - @rm -rf surf-${VERSION} + surf-open.sh arg.h TODO.md surf.png \ + surf.1 $(SRC) surf-$(VERSION) + @tar -cf surf-$(VERSION).tar surf-$(VERSION) + @gzip surf-$(VERSION).tar + @rm -rf surf-$(VERSION) install: all - @echo installing executable file to ${DESTDIR}${PREFIX}/bin - @mkdir -p ${DESTDIR}${PREFIX}/bin - @cp -f surf ${DESTDIR}${PREFIX}/bin - @chmod 755 ${DESTDIR}${PREFIX}/bin/surf - @echo installing manual page to ${DESTDIR}${MANPREFIX}/man1 - @mkdir -p ${DESTDIR}${MANPREFIX}/man1 - @sed "s/VERSION/${VERSION}/g" < surf.1 > ${DESTDIR}${MANPREFIX}/man1/surf.1 - @chmod 644 ${DESTDIR}${MANPREFIX}/man1/surf.1 + @echo installing executable file to $(DESTDIR)$(PREFIX)/bin + @mkdir -p $(DESTDIR)$(PREFIX)/bin + @cp -f surf $(DESTDIR)$(PREFIX)/bin + @chmod 755 $(DESTDIR)$(PREFIX)/bin/surf + @echo installing manual page to $(DESTDIR)$(MANPREFIX)/man1 + @mkdir -p $(DESTDIR)$(MANPREFIX)/man1 + @sed "s/VERSION/$(VERSION)/g" < surf.1 > $(DESTDIR)$(MANPREFIX)/man1/surf.1 + @chmod 644 $(DESTDIR)$(MANPREFIX)/man1/surf.1 uninstall: - @echo removing executable file from ${DESTDIR}${PREFIX}/bin - @rm -f ${DESTDIR}${PREFIX}/bin/surf - @echo removing manual page from ${DESTDIR}${MANPREFIX}/man1 - @rm -f ${DESTDIR}${MANPREFIX}/man1/surf.1 + @echo removing executable file from $(DESTDIR)$(PREFIX)/bin + @rm -f $(DESTDIR)$(PREFIX)/bin/surf + @echo removing manual page from $(DESTDIR)$(MANPREFIX)/man1 + @rm -f $(DESTDIR)$(MANPREFIX)/man1/surf.1 .PHONY: all options clean dist install uninstall diff --git a/config.mk b/config.mk index df6e812..5bec3e5 100644 --- a/config.mk +++ b/config.mk @@ -5,8 +5,8 @@ VERSION = 2.0 # paths PREFIX = /usr/local -MANPREFIX = ${PREFIX}/share/man -LIBPREFIX = ${PREFIX}/lib/surf +MANPREFIX = $(PREFIX)/share/man +LIBPREFIX = $(PREFIX)/lib/surf X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib @@ -15,17 +15,17 @@ GTKINC = `pkg-config --cflags gtk+-3.0 webkit2gtk-4.0` GTKLIB = `pkg-config --libs gtk+-3.0 webkit2gtk-4.0` # includes and libs -INCS = -I. -I/usr/include -I${X11INC} ${GTKINC} -LIBS = -L/usr/lib -lc -L${X11LIB} -lX11 ${GTKLIB} -lgthread-2.0 +INCS = -I$(X11INC) $(GTKINC) +LIBS = -L$(X11LIB) -lX11 $(GTKLIB) -lgthread-2.0 # flags CPPFLAGS = -DVERSION=\"${VERSION}\" -DWEBEXTDIR=\"${LIBPREFIX}\" -D_DEFAULT_SOURCE -CFLAGS = -std=c99 -pedantic -Wall -Os ${INCS} ${CPPFLAGS} -LDFLAGS = -s ${LIBS} +SURF_CFLAGS = $(INCS) $(CPPFLAGS) $(CFLAGS) +SURF_LDFLAGS = $(LIBS) $(LDFLAGS) # Solaris -#CFLAGS = -fast ${INCS} -DVERSION=\"${VERSION}\" -#LDFLAGS = ${LIBS} +#CFLAGS = -fast $(INCS) -DVERSION=\"$(VERSION)\" +#LDFLAGS = $(LIBS) # compiler and linker -CC = cc +#CC = c99