ef8b68e8cb5911558351097a2203a9d7e7992626
[src/app-framework-binder.git] / coverage / bin / Makefile
1
2 .PHONY: clean binaries
3
4 heredir = .
5 basedir = ../..
6
7 bindings = \
8         hi3.so \
9         hello.so \
10         salut.so \
11         salam.so \
12         shalom.so \
13         demat.so \
14         hellov2.so
15
16 bugs = $(foreach i,\
17         1 2 3 4 5 6 7 8 9 \
18         10 11 12 13 14 15 16 17 18 19 \
19         20 21, \
20         bugs/bug$i.so)
21
22 tests = \
23         test-apiset \
24         test-session \
25         test-wrap-json
26
27 targets = \
28         afb-daemon-cov \
29         afb-client \
30         $(tests) \
31         $(bindings) \
32         $(bugs)
33
34 binaries: $(targets)
35
36 clean:
37         @echo remove all binaries
38         @rm $(targets) *.gcno *.gcda *.o  2>/dev/null || true
39
40 #======================================================================================
41 # definitions
42 #======================================================================================
43
44 incdir = $(basedir)/include
45 srcdir = $(basedir)/src
46 tstdir = $(basedir)/src/tests
47 samdir = $(basedir)/bindings/samples
48
49 bindir = $(heredir)/bin
50
51 deps = openssl libmicrohttpd json-c libsystemd uuid
52
53 ccflags = \
54         -g \
55         -I$(incdir) \
56         $(shell pkg-config --cflags $(deps))
57
58 ldflags = -ldl -lrt -lpthread \
59         $(shell pkg-config --libs $(deps))
60
61 cflags = $(ccflags) $(ldflags)
62
63 defs =  -DAGL_DEVEL \
64         -DWITH_MONITORING_OPTION \
65         -DAFB_VERSION=\"cov\" \
66         -DBINDING_INSTALL_DIR=\"$(shell pwd)/fake\"
67
68 afb_lib_src = $(shell ls $(srcdir)/*.c | egrep -v '/afs-|/main-|/fdev-epoll.c|/afb-ws-client.c' )
69 afb_lib_obj = $(patsubst $(srcdir)/%.c,%.o,$(afb_lib_src))
70 afb_lib = afb-lib.a
71 afb_lib_defs = $(defs)
72
73 afb_daemon_srcs = $(srcdir)/main-afb-daemon.c $(afb_lib_obj)
74 afb_daemon_defs = $(afb_lib_defs)
75
76 afb_client_srcs = $(srcdir)/main-afb-client-demo.c $(srcdir)/afb-ws-client.c $(afb_lib_src)
77 afb_client_defs = $(defs)
78
79 tst_defs = $(defs)
80 tst_flags = $(cflags) \
81         -I$(srcdir) \
82         $(shell pkg-config --cflags --libs check)
83
84 tst_defs = '-DAFB_VERSION="cov"' '-DBINDING_INSTALL_DIR="fake"'
85 tst_flags = $(cflags) \
86         -I$(srcdir) \
87         $(shell pkg-config --cflags --libs check)
88
89 hello2_src = $(samdir)/hello2.c
90 hello3_src = $(samdir)/hello3.c
91 hi_src = $(samdir)/hi3.c
92 binding_flags = -shared -fPIC -Wl,--version-script=$(samdir)/export.map
93
94 #======================================================================================
95 # creates the targets
96 #======================================================================================
97
98 %.o: $(srcdir)/%.c
99         @echo creation of $@
100         @gcc -c -o $@ $< --coverage $(afb_lib_defs) $(ccflags)
101
102 afb-daemon-cov: $(afb_daemon_srcs)
103         @echo creation of $@
104         @gcc -o $@ $(afb_daemon_srcs) --coverage $(afb_daemon_defs) $(cflags)
105
106 afb-client: $(afb_client_srcs)
107         @echo creation of $@
108         @gcc -o $@ $(afb_client_srcs) $(afb_client_defs) $(cflags)
109
110 #======================================================================================
111 # create test
112 #======================================================================================
113
114 test-apiset: $(tstdir)/apiset/test-apiset.c $(afb_lib_obj)
115         @echo creation of $@
116         @gcc -o $@ $(tstdir)/apiset/test-apiset.c $(afb_lib_obj) --coverage $(tst_defs) $(tst_flags)
117
118 test-session: $(tstdir)/session/test-session.c $(afb_lib_obj)
119         @echo creation of $@
120         @gcc -o $@ $(tstdir)/session/test-session.c $(afb_lib_obj) --coverage $(tst_defs) $(tst_flags)
121
122 test-wrap-json: $(tstdir)/session/test-session.c $(afb_lib_obj)
123         @echo creation of $@
124         @gcc -o $@ $(tstdir)/wrap-json/test-wrap-json.c $(afb_lib_obj) --coverage $(tst_defs) $(tst_flags)
125
126 #======================================================================================
127 # create bindings
128 #======================================================================================
129
130 hi3.so: $(hi3_src)
131         @echo creation of $@
132         @gcc -o $@ $(hi3_src) $(binding_flags) $(cflags)
133
134 hello.so: $(hello3_src)
135         @echo creation of $@
136         @gcc -o $@ $(hello3_src) '-DAPINAME="hello"' '-DPREINIT_PROVIDE_CLASS="class1 class2"' $(binding_flags) $(cflags)
137
138 salut.so: $(hello3_src)
139         @echo creation of $@
140         @gcc -o $@ $(hello3_src) '-DAPINAME="salut"' '-DPREINIT_REQUIRE_CLASS="class2"' $(binding_flags) $(cflags)
141
142 salam.so: $(hello3_src)
143         @echo creation of $@
144         @gcc -o $@ $(hello3_src) '-DAPINAME="salam"' '-DINIT_REQUIRE_API="hello salut"' $(binding_flags) $(cflags)
145
146 shalom.so: $(hello3_src)
147         @echo creation of $@
148         @gcc -o $@ $(hello3_src) '-DAPINAME="shalom"' $(binding_flags) $(cflags)
149
150 demat.so: $(hello3_src)
151         @echo creation of $@
152         @gcc -o $@ $(hello3_src) '-DAPINAME="demat"' $(binding_flags) $(cflags)
153
154 hellov2.so: $(hello2_src)
155         @echo creation of $@
156         @gcc -o $@ $(hello2_src) '-DAPINAME="hello-v2"' $(binding_flags) $(cflags)
157
158 #======================================================================================
159 # create bugs
160 #======================================================================================
161
162 bugs:
163         @echo creation of directory bugs
164         @mkdir bugs
165
166 bugs/bug%.so: bug.c bugs
167         @echo creation of $@
168         @gcc -o $@ bug.c $(binding_flags) $(cflags) -D$(patsubst bugs/bug%.so,BUG%,$@)