Makefile: rework how webextensions are handled

This commit is contained in:
Quentin Rameau 2019-02-10 19:48:59 +01:00
parent d068a3878b
commit 21fcbc004e
3 changed files with 24 additions and 20 deletions

View File

@ -6,12 +6,13 @@ include config.mk
SRC = surf.c SRC = surf.c
CSRC = common.c CSRC = common.c
WEBEXTSRC = libsurf-webext.c WSRC = webext-surf.c
OBJ = $(SRC:.c=.o) OBJ = $(SRC:.c=.o)
COBJ = $(CSRC:.c=.o) COBJ = $(CSRC:.c=.o)
WEBEXTOBJ = $(WEBEXTSRC:.c=.o) WOBJ = $(WSRC:.c=.o)
WLIB = $(WSRC:.c=.so)
all: options libsurf-webext.so surf all: options surf $(WLIB)
options: options:
@echo surf build options: @echo surf build options:
@ -23,26 +24,25 @@ options:
.c.o: .c.o:
$(CC) $(SURFCFLAGS) $(CFLAGS) -c $< $(CC) $(SURFCFLAGS) $(CFLAGS) -c $<
.o.so:
$(CC) -shared -Wl,-soname,$@ $(LDFLAGS) -o $@ \
$< $(COBJ) $(WEBEXTLIBS)
config.h: config.h:
cp config.def.h $@ cp config.def.h $@
$(OBJ): config.h common.h config.mk $(OBJ) $(COBJ) $(WOBJ): config.h common.h config.mk
$(COBJ): config.h common.h config.mk $(WLIB): $(COBJ)
$(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) surf: $(OBJ) $(COBJ)
$(CC) $(SURFLDFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(COBJ) $(LIBS) $(CC) $(SURFLDFLAGS) $(LDFLAGS) -o $@ $(OBJ) $(COBJ) $(LIBS)
$(WOBJ):
$(CC) $(WEBEXTCFLAGS) $(CFLAGS) -c $(@:.o=.c)
clean: clean:
rm -f surf $(OBJ) $(COBJ) rm -f surf $(OBJ) $(COBJ)
rm -f libsurf-webext.so $(WEBEXTOBJ) rm -f $(WLIB) $(WOBJ)
distclean: clean distclean: clean
rm -f config.h surf-$(VERSION).tar.gz rm -f config.h surf-$(VERSION).tar.gz
@ -51,7 +51,7 @@ dist: distclean
mkdir -p surf-$(VERSION) mkdir -p surf-$(VERSION)
cp -R LICENSE Makefile config.mk config.def.h README \ cp -R LICENSE Makefile config.mk config.def.h README \
surf-open.sh arg.h TODO.md surf.png \ surf-open.sh arg.h TODO.md surf.png \
surf.1 $(SRC) $(WEBEXTSRC) surf-$(VERSION) surf.1 $(SRC) $(CSRC) $(WSRC) surf-$(VERSION)
tar -cf surf-$(VERSION).tar surf-$(VERSION) tar -cf surf-$(VERSION).tar surf-$(VERSION)
gzip surf-$(VERSION).tar gzip surf-$(VERSION).tar
rm -rf surf-$(VERSION) rm -rf surf-$(VERSION)
@ -61,8 +61,10 @@ install: all
cp -f surf $(DESTDIR)$(PREFIX)/bin cp -f surf $(DESTDIR)$(PREFIX)/bin
chmod 755 $(DESTDIR)$(PREFIX)/bin/surf chmod 755 $(DESTDIR)$(PREFIX)/bin/surf
mkdir -p $(DESTDIR)$(LIBDIR) mkdir -p $(DESTDIR)$(LIBDIR)
cp -f libsurf-webext.so $(DESTDIR)$(LIBDIR) cp -f $(WLIB) $(DESTDIR)$(LIBDIR)
chmod 644 $(DESTDIR)$(LIBDIR)/libsurf-webext.so for wlib in $(WLIB); do \
chmod 644 $(DESTDIR)$(LIBDIR)/$$wlib; \
done
mkdir -p $(DESTDIR)$(MANPREFIX)/man1 mkdir -p $(DESTDIR)$(MANPREFIX)/man1
sed "s/VERSION/$(VERSION)/g" < surf.1 > $(DESTDIR)$(MANPREFIX)/man1/surf.1 sed "s/VERSION/$(VERSION)/g" < surf.1 > $(DESTDIR)$(MANPREFIX)/man1/surf.1
chmod 644 $(DESTDIR)$(MANPREFIX)/man1/surf.1 chmod 644 $(DESTDIR)$(MANPREFIX)/man1/surf.1
@ -70,8 +72,10 @@ install: all
uninstall: uninstall:
rm -f $(DESTDIR)$(PREFIX)/bin/surf rm -f $(DESTDIR)$(PREFIX)/bin/surf
rm -f $(DESTDIR)$(MANPREFIX)/man1/surf.1 rm -f $(DESTDIR)$(MANPREFIX)/man1/surf.1
rm -f $(DESTDIR)$(LIBDIR)/libsurf-webext.so for wlib in $(WLIB); do \
rm -f $(DESTDIR)$(LIBDIR)/$$wlib; \
done
- rmdir $(DESTDIR)$(LIBDIR) - rmdir $(DESTDIR)$(LIBDIR)
.SUFFIXES: .so .o .c .SUFFIXES: .so .o .c
.PHONY: all options clean-dist clean dist install uninstall .PHONY: all options distclean clean dist install uninstall

View File

@ -24,7 +24,7 @@ LIBS = $(X11LIB) $(GTKLIB) -lgthread-2.0
# flags # flags
CPPFLAGS = -DVERSION=\"$(VERSION)\" -DWEBEXTDIR=\"$(LIBDIR)\" \ CPPFLAGS = -DVERSION=\"$(VERSION)\" -DWEBEXTDIR=\"$(LIBDIR)\" \
-D_DEFAULT_SOURCE -DGCR_API_SUBJECT_TO_CHANGE -D_DEFAULT_SOURCE -DGCR_API_SUBJECT_TO_CHANGE
SURFCFLAGS = $(INCS) $(CPPFLAGS) -fPIC SURFCFLAGS = -fPIC $(INCS) $(CPPFLAGS)
WEBEXTCFLAGS = -fPIC $(WEBEXTINC) WEBEXTCFLAGS = -fPIC $(WEBEXTINC)
# compiler # compiler