Ticket #31: GNUmakefile

File GNUmakefile, 2.2 kB (added by afb, 9 months ago)

GNUmakefile

Line 
1 #makeAll.sh
2 SHELL=/bin/sh
3 prefix=/usr/local
4
5 OS=$(shell uname || uname -s)
6 ARCH=$(shell arch || uname -m)
7
8 # make gtkD libs and test
9 all: libs test
10
11 DC?=gdc
12 DFLAGS?=-O2 -g -fdebug
13
14 ifeq ("$(OS)","Darwin")
15 LDFLAGS+=-Wl,-undefined,dynamic_lookup
16 else
17 LDFLAGS+=-no-export-dynamic
18 endif
19
20 AR=ar
21 RANLIB=ranlib
22
23 #######################################################################
24
25 #./compdGtkD.sh
26 LIBNAME_GTKD = libgtkd.a
27 SOURCES_GTKD = $(shell find \
28         src/atk \
29         src/cairo \
30         src/gdk \
31         src/gdkpixbuf \
32         src/glib \
33         src/gobject \
34         src/gthread \
35         src/gtk \
36         src/gtkc \
37         src/pango \
38         -name '*.d' )
39 OBJECTS_GTKD = $(shell echo $(SOURCES_GTKD) | sed -e 's/\.d/\.o/g')
40
41 #./compdGtkDTests.sh
42 BINNAME_DEMO = GtkDTests
43 SOURCES_DEMO = $(shell find \
44         demos/gtkD/TEditableCells.d \
45         demos/gtkD/TestAspectFrame.d \
46         demos/gtkD/TestDrawingArea.d \
47         demos/gtkD/TestEntries.d \
48         demos/gtkD/TestImage.d \
49         demos/gtkD/TestIdle.d \
50         demos/gtkD/TestScales.d \
51         demos/gtkD/TestStock.d \
52         demos/gtkD/TestText.d \
53         demos/gtkD/TestThemes.d \
54         demos/gtkD/TestTreeView1.d \
55         demos/gtkD/TestTreeView.d \
56         demos/gtkD/TestWindow.d \
57         demos/gtkD/TTextView.d \
58         -name '*.d' )
59 OBJECTS_DEMO = $(shell echo $(SOURCES_DEMO) | sed -e 's/\.d/\.o/g')
60
61 #./compdGtkDgl.sh
62 #./compdSimpleGL.sh
63 #./compdShapesGL.sh
64
65 # you can now run
66 #./GtkDTests
67 #./SimpleGL
68 #./ShapesGL
69
70 #######################################################################
71
72 # -Isrc
73
74 libs: $(LIBNAME_GTKD)
75
76 $(LIBNAME_GTKD): $(OBJECTS_GTKD)
77     $(AR) rcs $@ $^
78     $(RANLIB) $@
79
80 # -Idemos
81
82 test: $(BINNAME_DEMO)
83
84 $(BINNAME_DEMO): $(OBJECTS_DEMO) $(LIBNAME_GTKD)
85     $(DC) $(DFLAGS) $^ -o $@ $(LDFLAGS) -L. -lgtkd
86
87
88 %.o : %.d
89     $(DC) $(DFLAGS) -Isrc -Idemos -c $< -o $@
90
91 install: $(LIBNAME_GTKD)
92     install -d $(DESTDIR)$(prefix)/include/d
93     (cd src; echo $(SOURCES_GTKD) | sed -e s,src/,,g | xargs tar c) | (cd $(DESTDIR)$(prefix)/include/d; tar xv)
94     install -d $(DESTDIR)$(prefix)/lib
95     install -m 644 $(LIBNAME_GTKD) $(DESTDIR)$(prefix)/lib
96
97 clean:
98     -rm $(LIBNAME_GTKD) $(OBJECTS_GTKD)
99     -rm $(BINNAME_DEMO) $(OBJECTS_DEMO)