about summary refs log tree commit diff stats
path: root/linux/GNUmakefile
blob: f1dbbd14b5221b27552be53cc4a3c454c40df07b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
GTK_VERSION?= gtk3
ifeq ("${GTK_VERSION}", "gtk2")
JS_CF=$(shell pkg-config --silence-errors --cflags javascriptcoregtk-1.0)
JS_LD=$(shell pkg-config --silence-errors --libs javascriptcoregtk-1.0)
else
JS_CF=$(shell pkg-config --silence-errors --cflags javascriptcoregtk-3.0)
JS_LD=$(shell pkg-config --silence-errors --libs javascriptcoregtk-3.0)
endif

LIBS= glib-2.0
ifeq ("${GTK_VERSION}", "gtk2")
LIBS+= gtk+-2.0 webkit-1.0
CFLAGS+=-I/usr/include/gtk-2.0
else
LIBS+= gtk+-3.0 webkitgtk-3.0
CFLAGS+=-I/usr/include/gtk-3.0
endif
LIBS+= libsoup-2.4 gnutls libbsd

CFLAGS+= -O2 -Wall -ggdb3 -D_GNU_SOURCE -I. -I.. $(shell pkg-config --cflags $(LIBS)) $(JS_CF)
LDADD+= $(shell pkg-config --libs $(LIBS)) $(JS_LD) -ldl -lX11

PREFIX?= /usr/local
BINDIR?= $(PREFIX)/bin
APPDIR?= $(PREFIX)/share/applications
MANDIR?= $(PREFIX)/share/man
RESDIR?= $(PREFIX)/share/xombrero

SRCS= $(shell ls ../*.c)
SRCS+= linux.c
OBJS= $(SRCS:.c=.o)
DEPS= $(addsuffix .depend, $(OBJS))

CC?= gcc

BUILDVERSION= $(shell sh $(CURDIR)/../buildver.sh)
ifneq ("${BUILDVERSION}", "")
CFLAGS+= -DXOMBRERO_BUILDSTR=\"$(BUILDVERSION)\"
endif

all: javascript.h tooltip.h xombrero

javascript.h: ../js-merge-helper.pl ../hinting.js ../autoscroll.js
	perl ../js-merge-helper.pl ../hinting.js ../input-focus.js \
	../autoscroll.js > javascript.h

tooltip.h: ../ascii2txt.pl ../txt2tooltip.pl ../xombrero.1
	nroff -c -Tascii -mandoc ../xombrero.1 | \
	perl ../ascii2txt.pl | \
	perl ../txt2tooltip.pl > tooltip.h

xombrero: $(OBJS)
	$(CC) $(CFLAGS) $(LDFLAGS) -o $@ $+ $(LDADD)

%.o: %.c
	@echo "Generating $@.depend"
	@$(CC) -MM $(CPPFLAGS) $(CFLAGS) $< | \
	sed 's,^.*\.o[ :]*,$@ $@.depend : ,g' > $@.depend
	$(CC) $(CPPFLAGS) $(CFLAGS) -o $@ -c $<

install: all
	install -m 755 -d $(DESTDIR)$(BINDIR)
	install -m 755 -d $(DESTDIR)$(MANDIR)/man1
	install -m 755 -d $(DESTDIR)$(RESDIR)
	install -m 755 -d $(DESTDIR)$(APPDIR)
	install -m 755 xombrero $(DESTDIR)$(BINDIR)
	install -m 644 ../xombrero.1 $(DESTDIR)$(MANDIR)/man1/xombrero.1
	install -m 644 ../xombrero.css $(DESTDIR)$(RESDIR)
	install -m 644 ../xombrero.desktop $(DESTDIR)$(APPDIR)
	install -m 644 ../xombreroicon16.png $(DESTDIR)$(RESDIR)
	install -m 644 ../xombreroicon32.png $(DESTDIR)$(RESDIR)
	install -m 644 ../xombreroicon48.png $(DESTDIR)$(RESDIR)
	install -m 644 ../xombreroicon64.png $(DESTDIR)$(RESDIR)
	install -m 644 ../xombreroicon128.png $(DESTDIR)$(RESDIR)
	install -m 644 ../xombreroicon256.png $(DESTDIR)$(RESDIR)
	install -m 644 ../favicon.ico $(DESTDIR)$(RESDIR)
	install -m 644 ../tld-rules $(DESTDIR)$(RESDIR)
	install -m 644 ../style.css $(DESTDIR)$(RESDIR)
	install -m 644 ../hsts-preload $(DESTDIR)$(RESDIR)
	install -m 644 ../torenabled.ico $(DESTDIR)$(RESDIR)
	install -m 644 ../tordisabled.ico $(DESTDIR)$(RESDIR)

uninstall:
	rm -f $(DESTDIR)$(BINDIR)/xombrero
	rm -f $(DESTDIR)$(MANDIR)/man1/xombrero.1
	rm -f $(DESTDIR)$(APPDIR)/xombrero.desktop
	rm -f $(DESTDIR)$(RESDIR)/xombreroicon16.png
	rm -f $(DESTDIR)$(RESDIR)/xombreroicon32.png
	rm -f $(DESTDIR)$(RESDIR)/xombreroicon48.png
	rm -f $(DESTDIR)$(RESDIR)/xombreroicon64.png
	rm -f $(DESTDIR)$(RESDIR)/xombreroicon128.png
	rm -f $(DESTDIR)$(RESDIR)/xombreroicon256.png
	rm -f $(DESTDIR)$(RESDIR)/xombrero.css
	rm -f $(DESTDIR)$(RESDIR)/favicon.ico
	rm -f $(DESTDIR)$(RESDIR)/tordisabled.ico
	rm -f $(DESTDIR)$(RESDIR)/torenabled.ico
	rm -f $(DESTDIR)$(RESDIR)/tld-rules
	rm -f $(DESTDIR)$(RESDIR)/style.css
	rm -f $(DESTDIR)$(RESDIR)/hsts-preload
	if [ -d $(DESTDIR)$(RESDIR) ]; then rmdir $(DESTDIR)$(RESDIR); fi
clean:
	rm -f xombrero $(OBJS) $(DEPS)
	rm -f javascript.h
	rm -f tooltip.h


-include $(DEPS)

.PHONY: all install clean