1
1
# *******************************************************************************
2
- # Copyright (c) 2009, 2015 IBM Corp.
2
+ # Copyright (c) 2009, 2016 IBM Corp.
3
3
#
4
4
# All rights reserved. This program and the accompanying materials
5
5
# are made available under the terms of the Eclipse Public License v1.0
@@ -24,7 +24,7 @@ SHELL = /bin/sh
24
24
.PHONY : clean, mkdir, install, uninstall, html
25
25
26
26
ifndef release.version
27
- release.version = 1.0.3
27
+ release.version = 1.1.0
28
28
endif
29
29
30
30
# determine current platform
@@ -50,6 +50,18 @@ ifndef blddir
50
50
blddir = build/output
51
51
endif
52
52
53
+ ifndef blddir_work
54
+ blddir_work = build
55
+ endif
56
+
57
+ ifndef docdir
58
+ docdir = $(blddir ) /doc
59
+ endif
60
+
61
+ ifndef docdir_work
62
+ docdir_work = $(blddir ) /../doc
63
+ endif
64
+
53
65
ifndef prefix
54
66
prefix = /usr/local
55
67
endif
@@ -72,19 +84,19 @@ HEADERS = $(srcdir)/*.h
72
84
HEADERS_C = $(filter-out $(srcdir ) /MQTTAsync.h, $(HEADERS ) )
73
85
HEADERS_A = $(HEADERS )
74
86
75
- SAMPLE_FILES_C = stdinpub stdoutsub pubsync pubasync subasync
87
+ SAMPLE_FILES_C = paho_cs_pub paho_cs_sub MQTTClient_publish MQTTClient_publish_async MQTTClient_subscribe
76
88
SYNC_SAMPLES = ${addprefix ${blddir}/samples/,${SAMPLE_FILES_C}}
77
89
78
- SAMPLE_FILES_A = stdoutsuba MQTTAsync_subscribe MQTTAsync_publish
90
+ SAMPLE_FILES_A = paho_c_pub paho_c_sub MQTTAsync_subscribe MQTTAsync_publish
79
91
ASYNC_SAMPLES = ${addprefix ${blddir}/samples/,${SAMPLE_FILES_A}}
80
92
81
- TEST_FILES_C = test1 sync_client_test test_mqtt4sync
93
+ TEST_FILES_C = test1 test2 sync_client_test test_mqtt4sync
82
94
SYNC_TESTS = ${addprefix ${blddir}/test/,${TEST_FILES_C}}
83
95
84
96
TEST_FILES_CS = test3
85
97
SYNC_SSL_TESTS = ${addprefix ${blddir}/test/,${TEST_FILES_CS}}
86
98
87
- TEST_FILES_A = test4 test_mqtt4async
99
+ TEST_FILES_A = test4 test9 test_mqtt4async
88
100
ASYNC_TESTS = ${addprefix ${blddir}/test/,${TEST_FILES_A}}
89
101
90
102
TEST_FILES_AS = test5
@@ -115,7 +127,7 @@ MQTTLIB_A_TARGET = ${blddir}/lib${MQTTLIB_A}.so.${VERSION}
115
127
MQTTLIB_AS_TARGET = ${blddir}/lib${MQTTLIB_AS}.so.${VERSION}
116
128
MQTTVERSION_TARGET = ${blddir}/MQTTVersion
117
129
118
- CCFLAGS_SO = -g -fPIC $(CFLAGS ) -Os -Wall -fvisibility=hidden
130
+ CCFLAGS_SO = -g -fPIC $(CFLAGS ) -Os -Wall -fvisibility=hidden -I $( blddir_work )
119
131
FLAGS_EXE = $(LDFLAGS ) -I ${srcdir} -lpthread -L ${blddir}
120
132
FLAGS_EXES = $(LDFLAGS ) -I ${srcdir} ${START_GROUP} -lpthread -lssl -lcrypto ${END_GROUP} -L ${blddir}
121
133
@@ -125,9 +137,11 @@ LDFLAGS_CS = $(LDFLAGS) -shared $(START_GROUP) -lpthread $(EXTRA_LIB) -lssl -lcr
125
137
LDFLAGS_A = $(LDFLAGS ) -shared -Wl,-init,$(MQTTASYNC_INIT ) -lpthread
126
138
LDFLAGS_AS = $(LDFLAGS ) -shared $(START_GROUP ) -lpthread $(EXTRA_LIB ) -lssl -lcrypto $(END_GROUP ) -Wl,-init,$(MQTTASYNC_INIT )
127
139
128
- ifeq ($(OSTYPE ) ,Linux)
140
+ SED_COMMAND = sed \
141
+ -e "s/@CLIENT_VERSION@/${release.version}/g" \
142
+ -e "s/@BUILD_TIMESTAMP@/${build.level}/g"
129
143
130
- SED_COMMAND = sed -i "s/\ # \#MQTTCLIENT_VERSION_TAG\#\#/${release.version}/g; s/\#\#MQTTCLIENT_BUILD_TAG\#\#/${build.level}/g"
144
+ ifeq ( $( OSTYPE ) ,Linux)
131
145
132
146
MQTTCLIENT_INIT = MQTTClient_init
133
147
MQTTASYNC_INIT = MQTTAsync_init
@@ -143,8 +157,6 @@ LDFLAGS_AS += -Wl,-soname,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -Wl,-no-whole-arc
143
157
144
158
else ifeq ($(OSTYPE),Darwin)
145
159
146
- SED_COMMAND = sed -i "" -e "s/\# \#MQTTCLIENT_VERSION_TAG\#\#/${release.version}/g" -e "s/\#\#MQTTCLIENT_BUILD_TAG\#\#/${build.level}/g"
147
-
148
160
MQTTCLIENT_INIT = _MQTTClient_init
149
161
MQTTASYNC_INIT = _MQTTAsync_init
150
162
START_GROUP =
@@ -173,7 +185,7 @@ mkdir:
173
185
echo OSTYPE is $(OSTYPE )
174
186
175
187
${SYNC_TESTS} : ${blddir}/test/% : ${srcdir}/../test/% .c $(MQTTLIB_C_TARGET )
176
- ${CC} -g -o $@ $< -l${MQTTLIB_C} ${FLAGS_EXE}
188
+ ${CC} -DNOSTACKTRACE $( srcdir ) /Thread.c - g -o $@ $< -l${MQTTLIB_C} ${FLAGS_EXE}
177
189
178
190
${SYNC_SSL_TESTS} : ${blddir}/test/% : ${srcdir}/../test/% .c $(MQTTLIB_CS_TARGET )
179
191
${CC} -g -o $@ $< -l${MQTTLIB_CS} ${FLAGS_EXES}
@@ -190,26 +202,25 @@ ${SYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c $(MQTTLIB_C_TARGET)
190
202
${ASYNC_SAMPLES} : ${blddir}/samples/% : ${srcdir}/samples/% .c $(MQTTLIB_A_TARGET )
191
203
${CC} -o $@ $< -l${MQTTLIB_A} ${FLAGS_EXE}
192
204
193
- ${MQTTLIB_C_TARGET} : ${SOURCE_FILES_C} ${HEADERS_C}
194
- $(SED_COMMAND ) $(srcdir ) /MQTTClient.c
205
+ $(blddir_work ) /VersionInfo.h : $(srcdir ) /VersionInfo.h.in
206
+ $(SED_COMMAND ) $< > $@
207
+
208
+ ${MQTTLIB_C_TARGET} : ${SOURCE_FILES_C} ${HEADERS_C} $(blddir_work ) /VersionInfo.h
195
209
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_C} ${LDFLAGS_C}
196
210
-ln -s lib$(MQTTLIB_C ) .so.${VERSION} ${blddir} /lib$(MQTTLIB_C ) .so.${MAJOR_VERSION}
197
211
-ln -s lib$(MQTTLIB_C ) .so.${MAJOR_VERSION} ${blddir} /lib$(MQTTLIB_C ) .so
198
212
199
- ${MQTTLIB_CS_TARGET} : ${SOURCE_FILES_CS} ${HEADERS_C}
200
- $(SED_COMMAND ) $(srcdir ) /MQTTClient.c
213
+ ${MQTTLIB_CS_TARGET} : ${SOURCE_FILES_CS} ${HEADERS_C} $(blddir_work ) /VersionInfo.h
201
214
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_CS} -DOPENSSL ${LDFLAGS_CS}
202
215
-ln -s lib$(MQTTLIB_CS ) .so.${VERSION} ${blddir} /lib$(MQTTLIB_CS ) .so.${MAJOR_VERSION}
203
216
-ln -s lib$(MQTTLIB_CS ) .so.${MAJOR_VERSION} ${blddir} /lib$(MQTTLIB_CS ) .so
204
217
205
- ${MQTTLIB_A_TARGET} : ${SOURCE_FILES_A} ${HEADERS_A}
206
- $(SED_COMMAND ) $(srcdir ) /MQTTAsync.c
218
+ ${MQTTLIB_A_TARGET} : ${SOURCE_FILES_A} ${HEADERS_A} $(blddir_work ) /VersionInfo.h
207
219
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_A} ${LDFLAGS_A}
208
220
-ln -s lib$(MQTTLIB_A ) .so.${VERSION} ${blddir} /lib$(MQTTLIB_A ) .so.${MAJOR_VERSION}
209
221
-ln -s lib$(MQTTLIB_A ) .so.${MAJOR_VERSION} ${blddir} /lib$(MQTTLIB_A ) .so
210
222
211
- ${MQTTLIB_AS_TARGET} : ${SOURCE_FILES_AS} ${HEADERS_A}
212
- $(SED_COMMAND ) $(srcdir ) /MQTTAsync.c
223
+ ${MQTTLIB_AS_TARGET} : ${SOURCE_FILES_AS} ${HEADERS_A} $(blddir_work ) /VersionInfo.h
213
224
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_AS} -DOPENSSL ${LDFLAGS_AS}
214
225
-ln -s lib$(MQTTLIB_AS ) .so.${VERSION} ${blddir} /lib$(MQTTLIB_AS ) .so.${MAJOR_VERSION}
215
226
-ln -s lib$(MQTTLIB_AS ) .so.${MAJOR_VERSION} ${blddir} /lib$(MQTTLIB_AS ) .so
@@ -252,8 +263,18 @@ uninstall:
252
263
rm $(DESTDIR ) ${includedir} /MQTTClient.h
253
264
rm $(DESTDIR ) ${includedir} /MQTTClientPersistence.h
254
265
266
+ REGEX_DOXYGEN := \
267
+ 's;@PROJECT_SOURCE_DIR@/src/\?;;' \
268
+ 's;@PROJECT_SOURCE_DIR@;..;' \
269
+ 's;@CMAKE_CURRENT_BINARY_DIR@;../build/output;'
270
+ SED_DOXYGEN := $(foreach sed_exp,$(REGEX_DOXYGEN ) ,-e $(sed_exp ) )
271
+ define process_doxygen
272
+ cd ${srcdir}; sed $(SED_DOXYGEN ) ../doc/${1}.in > ../$(docdir_work ) /${1}
273
+ cd ${srcdir}; $(DOXYGEN_COMMAND ) ../$(docdir_work ) /${1}
274
+ endef
255
275
html :
256
- -mkdir -p ${blddir} /doc
257
- cd ${srcdir} ; $(DOXYGEN_COMMAND ) ../doc/DoxyfileV3ClientAPI
258
- cd ${srcdir} ; $(DOXYGEN_COMMAND ) ../doc/DoxyfileV3AsyncAPI
259
- cd ${srcdir} ; $(DOXYGEN_COMMAND ) ../doc/DoxyfileV3ClientInternal
276
+ -mkdir -p $(docdir_work )
277
+ -mkdir -p ${docdir}
278
+ $(call process_doxygen,DoxyfileV3ClientAPI)
279
+ $(call process_doxygen,DoxyfileV3AsyncAPI)
280
+ $(call process_doxygen,DoxyfileV3ClientInternal)
0 commit comments