X-Git-Url: https://git.danieliu.xyz/?p=surf.git;a=blobdiff_plain;f=Makefile;h=4f5253ab94c9f64af4ceb2243428e76e74cefe61;hp=779262897d6ac0c6e554417ebafff08ef0437b18;hb=e5a3175bc7a53d4dbd337bf4d5474fa0d6563925;hpb=6848b92342058d083a2ba3717914738cbf1bb6d6 diff --git a/Makefile b/Makefile index 7792628..4f5253a 100644 --- a/Makefile +++ b/Makefile @@ -1,56 +1,77 @@ # surf - simple browser # See LICENSE file for copyright and license details. +.POSIX: include config.mk SRC = surf.c -OBJ = ${SRC:.c=.o} +CSRC = common.c +WEBEXTSRC = libsurf-webext.c +OBJ = $(SRC:.c=.o) +COBJ = $(CSRC:.c=.o) +WEBEXTOBJ = $(WEBEXTSRC:.c=.o) -all: options surf +all: options libsurf-webext.so surf options: @echo surf build options: - @echo "CFLAGS = ${CFLAGS}" - @echo "LDFLAGS = ${LDFLAGS}" - @echo "CC = ${CC}" + @echo "CC = $(CC)" + @echo "CFLAGS = $(SURFCFLAGS) $(CFLAGS)" + @echo "WEBEXTCFLAGS = $(WEBEXTCFLAGS) $(CFLAGS)" + @echo "LDFLAGS = $(LDFLAGS)" .c.o: - @echo CC $< - @${CC} -c ${CFLAGS} $< + $(CC) $(SURFCFLAGS) $(CFLAGS) -c $< -${OBJ}: config.mk +config.h: + cp config.def.h $@ -surf: ${OBJ} - @echo CC -o $@ - @${CC} -o $@ surf.o ${LDFLAGS} +$(OBJ): config.h common.h config.mk +$(COBJ): config.h common.h config.mk +$(WEBEXTOBJ): config.h common.h config.mk + +$(WEBEXTOBJ): $(WEBEXTSRC) + $(CC) $(WEBEXTCFLAGS) $(CFLAGS) -c $(WEBEXTSRC) + +libsurf-webext.so: $(WEBEXTOBJ) $(COBJ) + $(CC) -shared -Wl,-soname,$@ $(LDFLAGS) -o $@ \ + $(WEBEXTOBJ) $(COBJ) $(WEBEXTLIBS) + +surf: $(OBJ) $(COBJ) + $(CC) $(SURFLDFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(COBJ) $(LIBS) clean: - @echo cleaning - @rm -f surf ${OBJ} surf-${VERSION}.tar.gz - -dist: clean - @echo creating dist tarball - @mkdir -p surf-${VERSION} - @cp -R LICENSE Makefile README config.def.h config.mk \ - surf.1 ${SRC} surf-${VERSION} - @tar -cf surf-${VERSION}.tar surf-${VERSION} - @gzip surf-${VERSION}.tar - @rm -rf surf-${VERSION} + rm -f surf $(OBJ) $(COBJ) + rm -f libsurf-webext.so $(WEBEXTOBJ) + +distclean: clean + rm -f config.h surf-$(VERSION).tar.gz + +dist: distclean + 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) $(WEBEXTSRC) 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 + mkdir -p $(DESTDIR)$(PREFIX)/bin + cp -f surf $(DESTDIR)$(PREFIX)/bin + chmod 755 $(DESTDIR)$(PREFIX)/bin/surf + mkdir -p $(DESTDIR)$(LIBDIR) + cp -f libsurf-webext.so $(DESTDIR)$(LIBDIR) + chmod 644 $(DESTDIR)$(LIBDIR)/libsurf-webext.so + 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 + rm -f $(DESTDIR)$(PREFIX)/bin/surf + rm -f $(DESTDIR)$(MANPREFIX)/man1/surf.1 + rm -f $(DESTDIR)$(LIBDIR)/libsurf-webext.so + - rmdir $(DESTDIR)$(LIBDIR) -.PHONY: all options clean dist install uninstall +.SUFFIXES: .so .o .c +.PHONY: all options clean-dist clean dist install uninstall