9aace4f74087cad549d62aa74682496532c8af82
[surf.git] / Makefile
1 # surf - simple browser
2 # See LICENSE file for copyright and license details.
3 .POSIX:
4
5 include config.mk
6
7 SRC = surf.c
8 OBJ = $(SRC:.c=.o)
9 LIBSRC = libsurf-webext.c
10 LIBOBJ = $(LIBSRC:.c=.lo)
11
12 all: options libsurf-webext.la surf
13
14 options:
15         @echo surf build options:
16         @echo "CFLAGS     = $(SURFCFLAGS)"
17         @echo "LDFLAGS    = $(SURFLDFLAGS)"
18         @echo "CC         = $(CC)"
19         @echo "LIBCFLAGS  = $(LIBCFLAGS)"
20         @echo "LIBLDFLAGS = $(LIBLDFLAGS)"
21         @echo "LIBTOOL    = $(LIBTOOL)"
22
23 .c.o:
24         @echo CC -c $<
25         @$(CC) $(SURFCFLAGS) -c $<
26
27 .c.lo:
28         @echo libtool compile $<
29         @$(LIBTOOL) --mode compile --tag CC $(CC) $(LIBCFLAGS) -c $<
30
31 $(OBJ): config.h config.mk
32 $(LIBOBJ): config.h config.mk
33
34 config.h:
35         @echo creating $@ from config.def.h
36         @cp config.def.h $@
37
38 libsurf-webext.la: $(LIBOBJ)
39         @echo libtool link $@
40         @$(LIBTOOL) --mode link --tag CC $(CC) $(LIBLDFLAGS) -o $@ \
41             $(LIBOBJ) -rpath $(DESTDIR)$(LIBPREFIX)
42
43 surf: $(OBJ)
44         @echo CC -o $@
45         @$(CC) $(SURFCFLAGS) -o $@ $(OBJ) $(SURFLDFLAGS)
46
47 clean-lib:
48         @echo cleaning library
49         @rm -rf libsurf-webext.la .libs $(LIBOBJ) $(LIBOBJ:.lo=.o)
50
51 clean: clean-lib
52         @echo cleaning
53         @rm -f surf $(OBJ)
54
55 distclean: clean
56         @echo cleaning dist
57         @rm -f config.h surf-$(VERSION).tar.gz
58
59 dist: distclean
60         @echo creating dist tarball
61         @mkdir -p surf-$(VERSION)
62         @cp -R LICENSE Makefile config.mk config.def.h README \
63             surf-open.sh arg.h TODO.md surf.png \
64             surf.1 $(SRC) $(LIBSRC) surf-$(VERSION)
65         @tar -cf surf-$(VERSION).tar surf-$(VERSION)
66         @gzip surf-$(VERSION).tar
67         @rm -rf surf-$(VERSION)
68
69 install-lib: libsurf-webext.la
70         @echo installing library file to $(DESTDIR)$(LIBPREFIX)
71         @mkdir -p $(DESTDIR)$(LIBPREFIX)
72         @$(LIBTOOL) --mode install install -c libsurf-webext.la \
73             $(DESTDIR)$(LIBPREFIX)/libsurf-webext.la
74
75 install: all install-lib
76         @echo installing executable file to $(DESTDIR)$(PREFIX)/bin
77         @mkdir -p $(DESTDIR)$(PREFIX)/bin
78         @cp -f surf $(DESTDIR)$(PREFIX)/bin
79         @chmod 755 $(DESTDIR)$(PREFIX)/bin/surf
80         @echo installing manual page to $(DESTDIR)$(MANPREFIX)/man1
81         @mkdir -p $(DESTDIR)$(MANPREFIX)/man1
82         @sed "s/VERSION/$(VERSION)/g" < surf.1 > $(DESTDIR)$(MANPREFIX)/man1/surf.1
83         @chmod 644 $(DESTDIR)$(MANPREFIX)/man1/surf.1
84
85 uninstall-lib:
86         @echo removing library file from $(DESTDIR)$(LIBPREFIX)
87         @$(LIBTOOL) --mode uninstall rm -f \
88             $(DESTDIR)$(LIBPREFIX)/libsurf-webext.la
89         @- rm -df $(DESTDIR)$(LIBPREFIX)
90
91 uninstall: uninstall-lib
92         @echo removing executable file from $(DESTDIR)$(PREFIX)/bin
93         @rm -f $(DESTDIR)$(PREFIX)/bin/surf
94         @echo removing manual page from $(DESTDIR)$(MANPREFIX)/man1
95         @rm -f $(DESTDIR)$(MANPREFIX)/man1/surf.1
96
97 .SUFFIXES: .la .lo .o .c
98 .PHONY: all options clean-dist clean dist install-lib install uninstall-lib uninstall