From 3321c42d36ce79ebecd8b2ea7e93ca2e5c2ff98d Mon Sep 17 00:00:00 2001 From: Quentin Rameau Date: Mon, 8 Oct 2018 13:47:25 +0200 Subject: Remove libtool depencency, reorganise Makefile We don't need libtool anymore, just build the library directly. This lets us simplify the Makefile too. --- Makefile | 65 ++++++++++++++++++++++++++------------------------------------- config.mk | 21 +++++++-------------- 2 files changed, 34 insertions(+), 52 deletions(-) diff --git a/Makefile b/Makefile index 72df488..3b601ff 100644 --- a/Makefile +++ b/Makefile @@ -6,44 +6,38 @@ include config.mk SRC = surf.c common.c OBJ = $(SRC:.c=.o) -LIBSRC = libsurf-webext.c common.c -LIBOBJ = $(LIBSRC:.c=.lo) +WEBEXTSRC = libsurf-webext.c +WEBEXTOBJ = $(WEBEXTSRC:.c=.o) -all: options libsurf-webext.la surf +all: options libsurf-webext.so surf options: @echo surf build options: - @echo "CFLAGS = $(SURFCFLAGS)" - @echo "LDFLAGS = $(SURFLDFLAGS)" - @echo "CC = $(CC)" - @echo "LIBCFLAGS = $(LIBCFLAGS)" - @echo "LIBLDFLAGS = $(LIBLDFLAGS)" - @echo "LIBTOOL = $(LIBTOOL)" + @echo "CC = $(CC)" + @echo "CFLAGS = $(SURFCFLAGS) $(CFLAGS)" + @echo "WEBEXTCFLAGS = $(WEBEXTCFLAGS) $(CFLAGS)" + @echo "LDFLAGS = $(LDFLAGS)" .c.o: - $(CC) $(SURFCFLAGS) -c $< + $(CC) $(SURFCFLAGS) $(CFLAGS) -c $< -.c.lo: - $(LIBTOOL) --mode compile --tag CC $(CC) $(LIBCFLAGS) -c $< +config.h: + cp config.def.h $@ $(OBJ): config.h config.mk -$(LIBOBJ): config.h config.mk -config.h: - cp config.def.h $@ +$(WEBEXTOBJ): config.h config.mk + $(CC) $(WEBEXTCFLAGS) $(CFLAGS) -c $(WEBEXTSRC) -libsurf-webext.la: $(LIBOBJ) - $(LIBTOOL) --mode link --tag CC $(CC) $(LIBLDFLAGS) -o $@ \ - $(LIBOBJ) $(LIB) -rpath $(DESTDIR)$(LIBPREFIX) +libsurf-webext.so: $(WEBEXTOBJ) + $(CC) -shared -Wl,-soname,$@ $(LDFLAGS) -o $@ $< $(WEBEXTLIBS) -lc surf: $(OBJ) - $(CC) $(SURFCFLAGS) -o $@ $(OBJ) $(SURFLDFLAGS) + $(CC) $(SURFLDLAGS) $(LDFLAGS) -o $@ $(OBJ) $(LIBS) -clean-lib: - rm -rf libsurf-webext.la .libs $(LIBOBJ) $(LIBOBJ:.lo=.o) - -clean: clean-lib +clean: rm -f surf $(OBJ) + rm -f libsurf-webext.so $(WEBEXTOBJ) distclean: clean rm -f config.h surf-$(VERSION).tar.gz @@ -52,32 +46,27 @@ 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) $(LIBSRC) surf-$(VERSION) + surf.1 $(SRC) $(WEBEXTSRC) surf-$(VERSION) tar -cf surf-$(VERSION).tar surf-$(VERSION) gzip surf-$(VERSION).tar rm -rf surf-$(VERSION) -install-lib: libsurf-webext.la - mkdir -p $(DESTDIR)$(LIBPREFIX) - $(LIBTOOL) --mode install install -c libsurf-webext.la \ - $(DESTDIR)$(LIBPREFIX)/libsurf-webext.la - -install: all install-lib +install: all mkdir -p $(DESTDIR)$(PREFIX)/bin cp -f surf $(DESTDIR)$(PREFIX)/bin chmod 755 $(DESTDIR)$(PREFIX)/bin/surf + mkdir -p $(DESTDIR)$(WEBEXTDIR) + cp -f libsurf-webext.so $(DESTDIR)$(WEBEXTDIR) + chmod 644 $(DESTDIR)$(PREFIX)/bin/surf 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-lib: - $(LIBTOOL) --mode uninstall rm -f \ - $(DESTDIR)$(LIBPREFIX)/libsurf-webext.la - - rm -df $(DESTDIR)$(LIBPREFIX) - -uninstall: uninstall-lib +uninstall: rm -f $(DESTDIR)$(PREFIX)/bin/surf rm -f $(DESTDIR)$(MANPREFIX)/man1/surf.1 + rm -f $(DESTDIR)$(WEBEXTDIR)/libsurf-webext.so + - rmdir $(DESTDIR)$(WEBEXTDIR) -.SUFFIXES: .la .lo .o .c -.PHONY: all options clean-dist clean dist install-lib install uninstall-lib uninstall +.SUFFIXES: .so .o .c +.PHONY: all options clean-dist clean dist install uninstall diff --git a/config.mk b/config.mk index 8d96b29..2cb1bd4 100644 --- a/config.mk +++ b/config.mk @@ -6,7 +6,8 @@ VERSION = 2.0 # paths PREFIX = /usr/local MANPREFIX = $(PREFIX)/share/man -LIBPREFIX = $(PREFIX)/lib/surf +LIBPREFIX = $(PREFIX)/lib +LIBDIR = $(LIBPREFIX)/surf X11INC = /usr/X11R6/include X11LIB = /usr/X11R6/lib @@ -14,25 +15,17 @@ X11LIB = /usr/X11R6/lib GTKINC = `pkg-config --cflags gtk+-3.0 gcr-3 webkit2gtk-4.0` GTKLIB = `pkg-config --libs gtk+-3.0 gcr-3 webkit2gtk-4.0` WEBEXTINC = `pkg-config --cflags webkit2gtk-4.0 webkit2gtk-web-extension-4.0` -WEBEXTLIB = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0` +WEBEXTLIBS = `pkg-config --libs webkit2gtk-4.0 webkit2gtk-web-extension-4.0` # includes and libs INCS = -I$(X11INC) $(GTKINC) LIBS = -L$(X11LIB) -lX11 $(GTKLIB) -lgthread-2.0 # flags -CPPFLAGS = -DVERSION=\"$(VERSION)\" -DWEBEXTDIR=\"$(LIBPREFIX)\" \ +CPPFLAGS = -DVERSION=\"$(VERSION)\" -DWEBEXTDIR=\"$(LIBDIR)\" \ -D_DEFAULT_SOURCE -DGCR_API_SUBJECT_TO_CHANGE -SURFCFLAGS = $(INCS) $(CPPFLAGS) $(CFLAGS) -SURFLDFLAGS = $(LIBS) $(LDFLAGS) -LIBCPPFLAGS = -DWEBEXTDIR=\"$(LIBPREFIX)\" -LIBCFLAGS = $(WEBEXTINC) $(LIBCPPFLAGS) $(CFLAGS) -LIBLDFLAGS = $(WEBEXTLIB) $(LDFLAGS) +SURFCFLAGS = $(INCS) $(CPPFLAGS) +WEBEXTCFLAGS = -fPIC $(WEBEXTINC) -# Solaris -#CFLAGS = -fast $(INCS) -DVERSION=\"$(VERSION)\" -#LDFLAGS = $(LIBS) - -# compiler and linker +# compiler #CC = c99 -LIBTOOL = libtool --quiet -- cgit v1.2.3