tArrange Makefile - surf - customized build of surf, the suckless webkit browser
 (HTM) git clone git://src.adamsgaard.dk/surf
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
 (DIR) commit c870098b82f1dfc3cd59cd8c90cea580bd01cb47
 (DIR) parent db7922f173b803d14039f286146c949ded1538cb
 (HTM) Author: Quentin Rameau <quinq@fifth.space>
       Date:   Sat, 29 Apr 2017 15:21:49 +0200
       
       Arrange Makefile
       
       Let the user specify his own C and LD FLAGS.
       Remove unuseful and non portable CFLAGS like pendantic and Wall.
       
       Diffstat:
         M Makefile                            |      63 +++++++++++++++++--------------
         M config.mk                           |      18 +++++++++---------
       
       2 files changed, 43 insertions(+), 38 deletions(-)
       ---
 (DIR) diff --git a/Makefile b/Makefile
       t@@ -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
 (DIR) diff --git a/config.mk b/config.mk
       t@@ -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
       t@@ -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