about summary refs log tree commit diff
path: root/Makefile
blob: 9338dff50142fb048b9024e4b80f22c0577b36fd (plain)
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
.POSIX:
.SUFFIXES:

all: hare-gi .gen

DESTDIR =
PREFIX = /usr/local
BINDIR = $(PREFIX)/bin
SRCDIR = $(PREFIX)/src
HARESRCDIR = $(SRCDIR)/hare
THIRDPARTYDIR = $(HARESRCDIR)/third-party

MODULES_CORE = \
	gi/libc \
	gi/glib \
	gi/gobject \
	gi/gio \
	gi/gmodule
MODULES_GTK_SHARED = \
	gi/atk \
	gi/gdkpixbuf \
	gi/freetype \
	gi/harfbuzz \
	gi/cairo \
	gi/pango \
	gi/xlib
MODULES_GTK3 = \
	gi/gdk \
	gi/gtk
MODULES_GTK4 = \
	gi/gdk4 \
	gi/gtk4 \
	gi/pangocairo \
	gi/graphene \
	gi/gsk

LIBS_3 != pkg-config --libs-only-l gtk+-3.0
LIBS_4 != pkg-config --libs-only-l gtk4

HARE_GI_SRC != find cmd/hare-gi/ -name '*.ha'
GIR_SRC != find gir/ -name '*.ha'
FORMAT_FASTXML_SRC != find format/fastxml/ -name '*.ha'

hare-gi: $(HARE_GI_SRC) $(GIR_SRC) $(FORMAT_FASTXML_SRC)
	hare build -o $@ cmd/hare-gi/

.gen: hare-gi
	./scripts/generate3
	./scripts/generate4
	touch .gen

install: hare-gi install-core install-gtk-shared install-gtk3 install-gtk4
	install -Dm755 hare-gi "$(DESTDIR)$(BINDIR)"/hare-gi

install-core: .gen
	@./scripts/install-modules "$(DESTDIR)$(THIRDPARTYDIR)" $(MODULES_CORE)

install-gtk-shared: .gen
	@./scripts/install-modules "$(DESTDIR)$(THIRDPARTYDIR)" $(MODULES_GTK_SHARED)

install-gtk3: .gen
	@./scripts/install-modules "$(DESTDIR)$(THIRDPARTYDIR)" $(MODULES_GTK3)

install-gtk4: .gen
	@./scripts/install-modules "$(DESTDIR)$(THIRDPARTYDIR)" $(MODULES_GTK4)

uninstall: uninstall-core uninstall-gtk-shared uninstall-gtk3 uninstall-gtk4

uninstall-core:
	@./scripts/uninstall-modules "$(DESTDIR)$(THIRDPARTYDIR)" $(MODULES_CORE)

uninstall-gtk-shared:
	@./scripts/uninstall-modules "$(DESTDIR)$(THIRDPARTYDIR)" $(MODULES_GTK_SHARED)

uninstall-gtk3:
	@./scripts/uninstall-modules "$(DESTDIR)$(THIRDPARTYDIR)" $(MODULES_GTK3)

uninstall-gtk4:
	@./scripts/uninstall-modules "$(DESTDIR)$(THIRDPARTYDIR)" $(MODULES_GTK4)

demo3: .gen
	hare build $(LIBS_3) -o demo3 cmd/demo3

demo4: .gen
	hare build $(LIBS_4) -o demo4 cmd/demo4

clean:
	rm -f hare-gi xmltree demo3 demo4 gi/*/_generate.ha

.PHONY: all clean
.PHONY: install install-core install-gtk-shared install-gtk3 install-gtk4
.PHONY: uninstall uninstall-core uninstall-gtk-shared uninstall-gtk3 uninstall-gtk4
.PHONY: demo3 demo4