Skip to content

Commit 83cc318

Browse files
committed
Merge branch 'develop' - all 1.1.0 changes
2 parents 07cd71b + c28b550 commit 83cc318

File tree

88 files changed

+15176
-1345
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

88 files changed

+15176
-1345
lines changed

.cproject

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,12 @@
55
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.2116872643" moduleId="org.eclipse.cdt.core.settings" name="debug-native">
66
<externalSettings/>
77
<extensions>
8+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
89
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
910
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
1011
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
1112
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
1213
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
13-
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
1414
</extensions>
1515
</storageModule>
1616
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
@@ -38,6 +38,17 @@
3838
</tool>
3939
</toolChain>
4040
</folderInfo>
41+
<fileInfo id="cdt.managedbuild.toolchain.gnu.base.2116872643.660980254" name="mqttclient_module.c" rcbsApplicability="disable" resourcePath="test/python/mqttclient_module.c" toolsToInvoke="cdt.managedbuild.tool.gnu.c.compiler.base.919295913.892752676">
42+
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.919295913.892752676" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.919295913">
43+
<option id="gnu.c.compiler.option.include.paths.1043418401" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
44+
<listOptionValue builtIn="false" value="/usr/include/python2.6"/>
45+
</option>
46+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.1471037566" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
47+
</tool>
48+
</fileInfo>
49+
<sourceEntries>
50+
<entry flags="VALUE_WORKSPACE_PATH" kind="sourcePath" name="src"/>
51+
</sourceEntries>
4152
</configuration>
4253
</storageModule>
4354
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
@@ -46,12 +57,12 @@
4657
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.2116872643.128299804" moduleId="org.eclipse.cdt.core.settings" name="debug-x86-linux">
4758
<externalSettings/>
4859
<extensions>
60+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
4961
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
5062
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
5163
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
5264
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
5365
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
54-
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
5566
</extensions>
5667
</storageModule>
5768
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
@@ -79,6 +90,14 @@
7990
</tool>
8091
</toolChain>
8192
</folderInfo>
93+
<fileInfo id="cdt.managedbuild.toolchain.gnu.base.2116872643.128299804.44392871" name="mqttclient_module.c" rcbsApplicability="disable" resourcePath="test/python/mqttclient_module.c" toolsToInvoke="cdt.managedbuild.tool.gnu.c.compiler.base.1542253543.1236301446">
94+
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1542253543.1236301446" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.1542253543">
95+
<option id="gnu.c.compiler.option.include.paths.387085861" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
96+
<listOptionValue builtIn="false" value="/usr/include/python2.6/"/>
97+
</option>
98+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.912266645" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
99+
</tool>
100+
</fileInfo>
82101
</configuration>
83102
</storageModule>
84103
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
@@ -87,12 +106,12 @@
87106
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084" moduleId="org.eclipse.cdt.core.settings" name="debug-arm-linux-gnueabihf">
88107
<externalSettings/>
89108
<extensions>
109+
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
90110
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
91111
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
92112
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
93113
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
94114
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
95-
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
96115
</extensions>
97116
</storageModule>
98117
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
@@ -120,6 +139,14 @@
120139
</tool>
121140
</toolChain>
122141
</folderInfo>
142+
<fileInfo id="cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084.1410045178" name="mqttclient_module.c" rcbsApplicability="disable" resourcePath="test/python/mqttclient_module.c" toolsToInvoke="cdt.managedbuild.tool.gnu.c.compiler.base.1805700752.404015131">
143+
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1805700752.404015131" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base.1805700752">
144+
<option id="gnu.c.compiler.option.include.paths.253579949" superClass="gnu.c.compiler.option.include.paths" valueType="includePath">
145+
<listOptionValue builtIn="false" value="/usr/include/python2.6/"/>
146+
</option>
147+
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.987997893" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
148+
</tool>
149+
</fileInfo>
123150
</configuration>
124151
</storageModule>
125152
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
@@ -128,9 +155,6 @@
128155
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
129156
<project id="org.eclipse.paho.mqtt.c.null.1335713239" name="org.eclipse.paho.mqtt.c"/>
130157
</storageModule>
131-
<storageModule moduleId="scannerConfiguration">
132-
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
133-
</storageModule>
134158
<storageModule moduleId="org.eclipse.cdt.core.LanguageSettingsProviders"/>
135159
<storageModule moduleId="refreshScope" versionNumber="2">
136160
<configuration configurationName="Default">
@@ -144,4 +168,25 @@
144168
</configuration>
145169
</storageModule>
146170
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
171+
<storageModule moduleId="scannerConfiguration">
172+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
173+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.2116872643.128299804;cdt.managedbuild.toolchain.gnu.base.2116872643.128299804.;cdt.managedbuild.tool.gnu.cpp.compiler.base.1478312340;cdt.managedbuild.tool.gnu.cpp.compiler.input.1918693642">
174+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
175+
</scannerConfigBuildInfo>
176+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.2116872643.128299804;cdt.managedbuild.toolchain.gnu.base.2116872643.128299804.;cdt.managedbuild.tool.gnu.c.compiler.base.1542253543;cdt.managedbuild.tool.gnu.c.compiler.input.273102950">
177+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
178+
</scannerConfigBuildInfo>
179+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084;cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084.;cdt.managedbuild.tool.gnu.c.compiler.base.1805700752;cdt.managedbuild.tool.gnu.c.compiler.input.892553453">
180+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
181+
</scannerConfigBuildInfo>
182+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.2116872643;cdt.managedbuild.toolchain.gnu.base.2116872643.2105697674;cdt.managedbuild.tool.gnu.cpp.compiler.base.2093522624;cdt.managedbuild.tool.gnu.cpp.compiler.input.58852055">
183+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
184+
</scannerConfigBuildInfo>
185+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084;cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084.;cdt.managedbuild.tool.gnu.cpp.compiler.base.1005171182;cdt.managedbuild.tool.gnu.cpp.compiler.input.1367844459">
186+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
187+
</scannerConfigBuildInfo>
188+
<scannerConfigBuildInfo instanceId="cdt.managedbuild.toolchain.gnu.base.2116872643;cdt.managedbuild.toolchain.gnu.base.2116872643.2105697674;cdt.managedbuild.tool.gnu.c.compiler.base.919295913;cdt.managedbuild.tool.gnu.c.compiler.input.873628110">
189+
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId=""/>
190+
</scannerConfigBuildInfo>
191+
</storageModule>
147192
</cproject>

.gitignore

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,3 @@
11
/dep/
2-
/build/output/
2+
/build/
3+
*.swp

.gitreview

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
[gerrit]
2+
host=git.eclipse.org
3+
port=29418
4+
project=paho/org.eclipse.paho.mqtt.c
5+
defaultbranch=develop

.project

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,11 @@
55
<projects>
66
</projects>
77
<buildSpec>
8+
<buildCommand>
9+
<name>org.python.pydev.PyDevBuilder</name>
10+
<arguments>
11+
</arguments>
12+
</buildCommand>
813
<buildCommand>
914
<name>org.eclipse.cdt.managedbuilder.core.genmakebuilder</name>
1015
<triggers>clean,full,incremental,</triggers>
@@ -23,5 +28,6 @@
2328
<nature>org.eclipse.cdt.core.ccnature</nature>
2429
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
2530
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
31+
<nature>org.python.pydev.pythonNature</nature>
2632
</natures>
2733
</projectDescription>

.pydevproject

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
2+
<?eclipse-pydev version="1.0"?><pydev_project>
3+
<pydev_property name="org.python.pydev.PYTHON_PROJECT_INTERPRETER">Default</pydev_property>
4+
<pydev_property name="org.python.pydev.PYTHON_PROJECT_VERSION">python 2.7</pydev_property>
5+
</pydev_project>

.travis.yml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
language: c
2+
3+
compiler:
4+
- gcc
5+
- clang
6+
7+
os:
8+
- linux
9+
- osx
10+
11+
script:
12+
- make

CMakeLists.txt

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
#*******************************************************************************
2+
# Copyright (c) 2015 logi.cals GmbH
3+
#
4+
# All rights reserved. This program and the accompanying materials
5+
# are made available under the terms of the Eclipse Public License v1.0
6+
# and Eclipse Distribution License v1.0 which accompany this distribution.
7+
#
8+
# The Eclipse Public License is available at
9+
# http://www.eclipse.org/legal/epl-v10.html
10+
# and the Eclipse Distribution License is available at
11+
# http://www.eclipse.org/org/documents/edl-v10.php.
12+
#
13+
# Contributors:
14+
# Rainer Poisel - initial version
15+
#*******************************************************************************/
16+
17+
# Note: on OS X you should install XCode and the associated command-line tools
18+
19+
PROJECT("paho" C)
20+
CMAKE_MINIMUM_REQUIRED(VERSION 3.0)
21+
22+
## build settings
23+
SET(PAHO_VERSION_MAJOR 1)
24+
SET(PAHO_VERSION_MINOR 0)
25+
SET(PAHO_VERSION_PATCH 3)
26+
SET(CLIENT_VERSION ${PAHO_VERSION_MAJOR}.${PAHO_VERSION_MINOR}.${PAHO_VERSION_PATCH})
27+
28+
EXECUTE_PROCESS(COMMAND date -u OUTPUT_VARIABLE BUILD_TIMESTAMP)
29+
STRING(STRIP ${BUILD_TIMESTAMP} BUILD_TIMESTAMP)
30+
31+
## build options
32+
SET(PAHO_WITH_SSL FALSE CACHE BOOL "Flag that defines whether to build ssl-enabled binaries too. ")
33+
SET(PAHO_BUILD_DOCUMENTATION FALSE CACHE BOOL "Create and install the HTML based API documentation (requires Doxygen)")
34+
SET(PAHO_BUILD_SAMPLES FALSE CACHE BOOL "Build sample programs")
35+
36+
ADD_SUBDIRECTORY(src)
37+
IF(PAHO_BUILD_SAMPLES)
38+
ADD_SUBDIRECTORY(src/samples)
39+
ENDIF()
40+
41+
IF(PAHO_BUILD_DOCUMENTATION)
42+
ADD_SUBDIRECTORY(doc)
43+
ENDIF()
44+
45+
### packaging settings
46+
IF (CMAKE_SYSTEM_NAME MATCHES "Windows")
47+
SET(CPACK_GENERATOR "ZIP")
48+
ELSE()
49+
SET(CPACK_GENERATOR "TGZ")
50+
ENDIF()
51+
52+
SET(CPACK_PACKAGE_VERSION_MAJOR ${PAHO_VERSION_MAJOR})
53+
SET(CPACK_PACKAGE_VERSION_MINOR ${PAHO_VERSION_MINOR})
54+
SET(CPACK_PACKAGE_VERSION_PATCH ${PAHO_VERSION_PATCH})
55+
INCLUDE(CPack)

Makefile

Lines changed: 45 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
#*******************************************************************************
2-
# Copyright (c) 2009, 2015 IBM Corp.
2+
# Copyright (c) 2009, 2016 IBM Corp.
33
#
44
# All rights reserved. This program and the accompanying materials
55
# are made available under the terms of the Eclipse Public License v1.0
@@ -24,7 +24,7 @@ SHELL = /bin/sh
2424
.PHONY: clean, mkdir, install, uninstall, html
2525

2626
ifndef release.version
27-
release.version = 1.0.3
27+
release.version = 1.1.0
2828
endif
2929

3030
# determine current platform
@@ -50,6 +50,18 @@ ifndef blddir
5050
blddir = build/output
5151
endif
5252

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+
5365
ifndef prefix
5466
prefix = /usr/local
5567
endif
@@ -72,19 +84,19 @@ HEADERS = $(srcdir)/*.h
7284
HEADERS_C = $(filter-out $(srcdir)/MQTTAsync.h, $(HEADERS))
7385
HEADERS_A = $(HEADERS)
7486

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
7688
SYNC_SAMPLES = ${addprefix ${blddir}/samples/,${SAMPLE_FILES_C}}
7789

78-
SAMPLE_FILES_A = stdoutsuba MQTTAsync_subscribe MQTTAsync_publish
90+
SAMPLE_FILES_A = paho_c_pub paho_c_sub MQTTAsync_subscribe MQTTAsync_publish
7991
ASYNC_SAMPLES = ${addprefix ${blddir}/samples/,${SAMPLE_FILES_A}}
8092

81-
TEST_FILES_C = test1 sync_client_test test_mqtt4sync
93+
TEST_FILES_C = test1 test2 sync_client_test test_mqtt4sync
8294
SYNC_TESTS = ${addprefix ${blddir}/test/,${TEST_FILES_C}}
8395

8496
TEST_FILES_CS = test3
8597
SYNC_SSL_TESTS = ${addprefix ${blddir}/test/,${TEST_FILES_CS}}
8698

87-
TEST_FILES_A = test4 test_mqtt4async
99+
TEST_FILES_A = test4 test9 test_mqtt4async
88100
ASYNC_TESTS = ${addprefix ${blddir}/test/,${TEST_FILES_A}}
89101

90102
TEST_FILES_AS = test5
@@ -115,7 +127,7 @@ MQTTLIB_A_TARGET = ${blddir}/lib${MQTTLIB_A}.so.${VERSION}
115127
MQTTLIB_AS_TARGET = ${blddir}/lib${MQTTLIB_AS}.so.${VERSION}
116128
MQTTVERSION_TARGET = ${blddir}/MQTTVersion
117129

118-
CCFLAGS_SO = -g -fPIC $(CFLAGS) -Os -Wall -fvisibility=hidden
130+
CCFLAGS_SO = -g -fPIC $(CFLAGS) -Os -Wall -fvisibility=hidden -I$(blddir_work)
119131
FLAGS_EXE = $(LDFLAGS) -I ${srcdir} -lpthread -L ${blddir}
120132
FLAGS_EXES = $(LDFLAGS) -I ${srcdir} ${START_GROUP} -lpthread -lssl -lcrypto ${END_GROUP} -L ${blddir}
121133

@@ -125,9 +137,11 @@ LDFLAGS_CS = $(LDFLAGS) -shared $(START_GROUP) -lpthread $(EXTRA_LIB) -lssl -lcr
125137
LDFLAGS_A = $(LDFLAGS) -shared -Wl,-init,$(MQTTASYNC_INIT) -lpthread
126138
LDFLAGS_AS = $(LDFLAGS) -shared $(START_GROUP) -lpthread $(EXTRA_LIB) -lssl -lcrypto $(END_GROUP) -Wl,-init,$(MQTTASYNC_INIT)
127139

128-
ifeq ($(OSTYPE),Linux)
140+
SED_COMMAND = sed \
141+
-e "s/@CLIENT_VERSION@/${release.version}/g" \
142+
-e "s/@BUILD_TIMESTAMP@/${build.level}/g"
129143

130-
SED_COMMAND = sed -i "s/\#\#MQTTCLIENT_VERSION_TAG\#\#/${release.version}/g; s/\#\#MQTTCLIENT_BUILD_TAG\#\#/${build.level}/g"
144+
ifeq ($(OSTYPE),Linux)
131145

132146
MQTTCLIENT_INIT = MQTTClient_init
133147
MQTTASYNC_INIT = MQTTAsync_init
@@ -143,8 +157,6 @@ LDFLAGS_AS += -Wl,-soname,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -Wl,-no-whole-arc
143157

144158
else ifeq ($(OSTYPE),Darwin)
145159

146-
SED_COMMAND = sed -i "" -e "s/\#\#MQTTCLIENT_VERSION_TAG\#\#/${release.version}/g" -e "s/\#\#MQTTCLIENT_BUILD_TAG\#\#/${build.level}/g"
147-
148160
MQTTCLIENT_INIT = _MQTTClient_init
149161
MQTTASYNC_INIT = _MQTTAsync_init
150162
START_GROUP =
@@ -173,7 +185,7 @@ mkdir:
173185
echo OSTYPE is $(OSTYPE)
174186

175187
${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}
177189

178190
${SYNC_SSL_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c $(MQTTLIB_CS_TARGET)
179191
${CC} -g -o $@ $< -l${MQTTLIB_CS} ${FLAGS_EXES}
@@ -190,26 +202,25 @@ ${SYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c $(MQTTLIB_C_TARGET)
190202
${ASYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c $(MQTTLIB_A_TARGET)
191203
${CC} -o $@ $< -l${MQTTLIB_A} ${FLAGS_EXE}
192204

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
195209
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_C} ${LDFLAGS_C}
196210
-ln -s lib$(MQTTLIB_C).so.${VERSION} ${blddir}/lib$(MQTTLIB_C).so.${MAJOR_VERSION}
197211
-ln -s lib$(MQTTLIB_C).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_C).so
198212

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
201214
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_CS} -DOPENSSL ${LDFLAGS_CS}
202215
-ln -s lib$(MQTTLIB_CS).so.${VERSION} ${blddir}/lib$(MQTTLIB_CS).so.${MAJOR_VERSION}
203216
-ln -s lib$(MQTTLIB_CS).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_CS).so
204217

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
207219
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_A} ${LDFLAGS_A}
208220
-ln -s lib$(MQTTLIB_A).so.${VERSION} ${blddir}/lib$(MQTTLIB_A).so.${MAJOR_VERSION}
209221
-ln -s lib$(MQTTLIB_A).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_A).so
210222

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
213224
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_AS} -DOPENSSL ${LDFLAGS_AS}
214225
-ln -s lib$(MQTTLIB_AS).so.${VERSION} ${blddir}/lib$(MQTTLIB_AS).so.${MAJOR_VERSION}
215226
-ln -s lib$(MQTTLIB_AS).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_AS).so
@@ -252,8 +263,18 @@ uninstall:
252263
rm $(DESTDIR)${includedir}/MQTTClient.h
253264
rm $(DESTDIR)${includedir}/MQTTClientPersistence.h
254265

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
255275
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

Comments
 (0)