Do not force initialization of Connection_Type
[dbus-ada.git] / Makefile
1 PREFIX   ?= $(HOME)/libraries
2 TESTDIR   = tests
3 OBJDIR    = obj
4 LIBDIR    = lib
5 SRCDIR    = src
6 THINDIR   = thin
7 DOCDIR    = doc/html
8 GPR_FILES = gnat/*.gpr
9
10 PKGCONF = `pkg-config --cflags --libs dbus-glib-1`
11 TESTBIN = $(OBJDIR)/tests/rebounder
12 TESTPID = `pidof rebounder`
13
14 MAJOR   = 0
15 MINOR   = 5
16 REV     = 0
17 VERSION = $(MAJOR).$(MINOR).$(REV)
18 DBUSADA = libdbusada-$(VERSION)
19 TARBALL = $(DBUSADA).tar.bz2
20
21 SO_LIBRARY   = libdbusada.so.$(VERSION)
22 LIBRARY_KIND = dynamic
23
24 NUM_CPUS ?= 1
25
26 # GNAT_BUILDER_FLAGS, ADAFLAGS and LDFLAGS may be overridden in the
27 # environment or on the command line.
28 GNAT_BUILDER_FLAGS ?= -R -j$(NUM_CPUS)
29
30 # GMAKE_OPTS should not be overridden because -p is essential.
31 GMAKE_OPTS = -p ${GNAT_BUILDER_FLAGS} \
32   $(foreach v,ADAFLAGS LDFLAGS VERSION,"-X$(v)=$($(v))")
33
34 PREPARE := $(shell mkdir -p $(OBJDIR))
35
36 all: build_lib
37
38 build_lib:
39         gprbuild $(GMAKE_OPTS) -Pd_bus_ada_lib -XLIBRARY_KIND=$(LIBRARY_KIND)
40
41 build_tests:
42         gprbuild $(GMAKE_OPTS) -Pd_bus_ada_tests -XLIBRARY_KIND=static
43
44 build_examples:
45         gprbuild $(GMAKE_OPTS) -Pd_bus_ada_examples -XLIBRARY_KIND=static
46
47 install: install_lib install_$(LIBRARY_KIND)
48
49 install_lib: build_lib
50         install -d $(PREFIX)/include/dbus-ada
51         install -d $(PREFIX)/lib/dbus-ada
52         install -d $(PREFIX)/lib/gnat
53         install -m 644 $(SRCDIR)/*.ad[bs] $(PREFIX)/include/dbus-ada
54         install -m 644 $(THINDIR)/*.ad[bs] $(PREFIX)/include/dbus-ada
55         install -m 444 $(LIBDIR)/$(LIBRARY_KIND)/*.ali $(PREFIX)/lib/dbus-ada
56         install -m 644 $(GPR_FILES) $(PREFIX)/lib/gnat
57
58 install_static:
59         install -m 644 $(LIBDIR)/$(LIBRARY_KIND)/libdbusada.a $(PREFIX)/lib
60
61 install_dynamic:
62         install -m 644 $(LIBDIR)/$(LIBRARY_KIND)/$(SO_LIBRARY) $(PREFIX)/lib
63         cd $(PREFIX)/lib && ln -sf $(SO_LIBRARY) libdbusada.so
64
65 tests: build_tests $(TESTBIN)
66         @$(TESTBIN) &
67         @$(OBJDIR)/tests/runner || true
68         @kill $(TESTPID)
69
70 examples: build_examples
71
72 $(OBJDIR)/tests:
73         @mkdir -p $@
74
75 $(TESTBIN): $(TESTDIR)/c/dbus-rebound.c | $(OBJDIR)/tests
76         gcc $? $(PKGCONF) -o $@
77
78 doc:
79         @$(MAKE) -C doc
80
81 clean:
82         @rm -rf $(OBJDIR)
83         @rm -rf $(LIBDIR)
84         @rm -rf $(DOCDIR)
85
86 dist:
87         @echo "Creating release tarball $(TARBALL) ... "
88         @git archive --format=tar HEAD --prefix $(DBUSADA)/ | bzip2 > $(TARBALL)
89
90 .PHONY: doc tests