mirror of https://github.com/eclipse/paho.mqtt.c
Support for multi-core builds; Support for cross compilation including sample build configurations
Change-Id: Ib64f34f5fa43bb5249b661e883c80d3c37daffe7 Signed-off-by: Rainer Poisel <rainer.poisel@gmail.com>
This commit is contained in:
parent
1a5e85b74b
commit
7a31d57bd3
98
.cproject
98
.cproject
|
|
@ -1,7 +1,8 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?><?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?><cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.2116872643">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.2116872643" moduleId="org.eclipse.cdt.core.settings" name="Default">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.toolchain.gnu.base.2116872643" moduleId="org.eclipse.cdt.core.settings" name="debug-native">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
|
|
@ -13,11 +14,11 @@
|
|||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.2116872643" name="Default" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.2116872643" name="debug-native" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.2116872643.2105697674" name="/" resourcePath="">
|
||||
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1661896025" name="cdt.managedbuild.toolchain.gnu.base" superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.189112861" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1205354372" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.1205354372" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1645786956" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.2093522624" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.58852055" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
|
|
@ -41,6 +42,88 @@
|
|||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.2116872643.128299804">
|
||||
<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">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.2116872643.128299804" name="debug-x86-linux" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.2116872643.128299804." name="/" resourcePath="">
|
||||
<toolChain id="cdt.managedbuild.toolchain.gnu.base.1794382793" name="cdt.managedbuild.toolchain.gnu.base" superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.1485941262" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.220668335" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.284844463" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1478312340" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1918693642" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1542253543" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.273102950" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1110240347" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.1992155787" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1355647881" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.assembler.base.1049977093" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1999881075" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084">
|
||||
<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">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GmakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.CWDLocator" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="${ProjName}" buildProperties="" description="" id="cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084" name="debug-arm-linux-gnueabihf" parent="org.eclipse.cdt.build.core.emptycfg">
|
||||
<folderInfo id="cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084." name="/" resourcePath="">
|
||||
<toolChain id="cdt.managedbuild.toolchain.gnu.base.831723006" name="cdt.managedbuild.toolchain.gnu.base" superClass="cdt.managedbuild.toolchain.gnu.base">
|
||||
<targetPlatform archList="all" binaryParser="org.eclipse.cdt.core.ELF" id="cdt.managedbuild.target.gnu.platform.base.1838207249" name="Debug Platform" osList="linux,hpux,aix,qnx" superClass="cdt.managedbuild.target.gnu.platform.base"/>
|
||||
<builder id="cdt.managedbuild.target.gnu.builder.base.373473642" keepEnvironmentInBuildfile="false" managedBuildOn="false" name="Gnu Make Builder" parallelBuildOn="true" parallelizationNumber="optimal" superClass="cdt.managedbuild.target.gnu.builder.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.1386858473" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.base.1005171182" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.compiler.input.1367844459" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.base.1805700752" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.c.compiler.input.892553453" superClass="cdt.managedbuild.tool.gnu.c.compiler.input"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.base.1775502227" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.base.2000163116" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.cpp.linker.input.1797952705" superClass="cdt.managedbuild.tool.gnu.cpp.linker.input">
|
||||
<additionalInput kind="additionalinputdependency" paths="$(USER_OBJS)"/>
|
||||
<additionalInput kind="additionalinput" paths="$(LIBS)"/>
|
||||
</inputType>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.assembler.base.1735139022" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.base">
|
||||
<inputType id="cdt.managedbuild.tool.gnu.assembler.input.1355266401" superClass="cdt.managedbuild.tool.gnu.assembler.input"/>
|
||||
</tool>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="org.eclipse.paho.mqtt.c.null.1335713239" name="org.eclipse.paho.mqtt.c"/>
|
||||
|
|
@ -53,5 +136,12 @@
|
|||
<configuration configurationName="Default">
|
||||
<resource resourceType="PROJECT" workspacePath="/org.eclipse.paho.mqtt.c"/>
|
||||
</configuration>
|
||||
<configuration configurationName="x86-linux">
|
||||
<resource resourceType="PROJECT" workspacePath="/org.eclipse.paho.mqtt.c"/>
|
||||
</configuration>
|
||||
<configuration configurationName="arm-linux-gnueabihf">
|
||||
<resource resourceType="PROJECT" workspacePath="/org.eclipse.paho.mqtt.c"/>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.make.core.buildtargets"/>
|
||||
</cproject>
|
||||
|
|
@ -0,0 +1,2 @@
|
|||
/dep/
|
||||
/build/output/
|
||||
|
|
@ -0,0 +1,43 @@
|
|||
eclipse.preferences.version=1
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/BUILD_TYPE/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/BUILD_TYPE/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/BUILD_TYPE/value=debug
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/CFLAGS/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/CFLAGS/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/CFLAGS/value=-m32
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/LDFLAGS/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/LDFLAGS/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/LDFLAGS/value=-m32
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/MACHINETYPE/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/MACHINETYPE/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/MACHINETYPE/value=x86
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/OSTYPE/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/OSTYPE/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/OSTYPE/value=Linux
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/append=true
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.128299804/appendContributed=true
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/BUILD_TYPE/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/BUILD_TYPE/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/BUILD_TYPE/value=debug
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/CC/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/CC/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/CC/value=arm-linux-gnueabihf-gcc
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/CFLAGS/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/CFLAGS/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/CFLAGS/value=-Idep/arm-linux-gnueabihf/include -Idep/arm-linux-gnueabihf/include/arm-linux-gnueabihf
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/LDFLAGS/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/LDFLAGS/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/LDFLAGS/value=-Ldep/arm-linux-gnueabihf/lib
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/MACHINETYPE/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/MACHINETYPE/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/MACHINETYPE/value=arm-linux-gnueabihf
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/OSTYPE/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/OSTYPE/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/OSTYPE/value=Linux
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/append=true
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643.1588218084/appendContributed=true
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643/BUILD_TYPE/delimiter=\:
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643/BUILD_TYPE/operation=append
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643/BUILD_TYPE/value=debug
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643/append=true
|
||||
environment/project/cdt.managedbuild.toolchain.gnu.base.2116872643/appendContributed=true
|
||||
228
Makefile
228
Makefile
|
|
@ -78,41 +78,61 @@ MQTTLIB_A = paho-mqtt3a
|
|||
MQTTLIB_AS = paho-mqtt3as
|
||||
|
||||
# determine current platform
|
||||
BUILD_TYPE ?= debug
|
||||
ifeq ($(OS),Windows_NT)
|
||||
OSTYPE = $(OS)
|
||||
OSTYPE ?= $(OS)
|
||||
MACHINETYPE ?= $(PROCESSOR_ARCHITECTURE)
|
||||
else
|
||||
OSTYPE = $(shell uname -s)
|
||||
MACHINETYPE = $(shell uname -m)
|
||||
OSTYPE ?= $(shell uname -s)
|
||||
MACHINETYPE ?= $(shell uname -m)
|
||||
endif # OS
|
||||
|
||||
CC ?= gcc
|
||||
|
||||
ifndef INSTALL
|
||||
INSTALL = install
|
||||
endif
|
||||
INSTALL_PROGRAM = $(INSTALL)
|
||||
INSTALL_DATA = $(INSTALL) -m 644
|
||||
DOXYGEN_COMMAND = doxygen
|
||||
|
||||
MAJOR_VERSION = 1
|
||||
MINOR_VERSION = 0
|
||||
VERSION = ${MAJOR_VERSION}.${MINOR_VERSION}
|
||||
|
||||
MQTTLIB_C_TARGET = ${blddir}/lib${MQTTLIB_C}.so.${VERSION}
|
||||
MQTTLIB_CS_TARGET = ${blddir}/lib${MQTTLIB_CS}.so.${VERSION}
|
||||
MQTTLIB_A_TARGET = ${blddir}/lib${MQTTLIB_A}.so.${VERSION}
|
||||
MQTTLIB_AS_TARGET = ${blddir}/lib${MQTTLIB_AS}.so.${VERSION}
|
||||
MQTTVERSION_TARGET = ${blddir}/MQTTVersion
|
||||
|
||||
CCFLAGS_SO = -g -fPIC $(CFLAGS) -Os -Wall -fvisibility=hidden
|
||||
FLAGS_EXE = $(LDFLAGS) -I ${srcdir} -lpthread -L ${blddir}
|
||||
FLAGS_EXES = $(LDFLAGS) -I ${srcdir} -Wl,--start-group -lpthread -lssl -lcrypto -Wl,--end-group -L ${blddir}
|
||||
LDFLAGS_C = $(LDFLAGS) -shared -Wl,-init,MQTTClient_init -lpthread
|
||||
LDFLAGS_CS = $(LDFLAGS) -shared -Wl,--start-group -lpthread $(EXTRA_LIB) -lssl -lcrypto -Wl,--end-group -Wl,-init,MQTTClient_init
|
||||
LDFLAGS_A = $(LDFLAGS) -shared -Wl,-init,MQTTAsync_init -lpthread
|
||||
LDFLAGS_AS = $(LDFLAGS) -shared -Wl,--start-group -lpthread $(EXTRA_LIB) -lssl -lcrypto -Wl,--end-group -Wl,-init,MQTTAsync_init
|
||||
|
||||
ifeq ($(OSTYPE),Linux)
|
||||
|
||||
CC ?= gcc
|
||||
LDFLAGS_C += -Wl,-soname,lib$(MQTTLIB_C).so.${MAJOR_VERSION}
|
||||
LDFLAGS_CS += -Wl,-soname,lib$(MQTTLIB_CS).so.${MAJOR_VERSION} -Wl,-no-whole-archive
|
||||
LDFLAGS_A += -Wl,-soname,lib${MQTTLIB_A}.so.${MAJOR_VERSION}
|
||||
LDFLAGS_AS += -Wl,-soname,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -Wl,-no-whole-archive
|
||||
|
||||
ifndef INSTALL
|
||||
INSTALL = install
|
||||
EXTRA_LIB =
|
||||
|
||||
else ifeq ($(OSTYPE),Darwin)
|
||||
|
||||
CCFLAGS_SO += -Wno-deprecated-declarations -DUSE_NAMED_SEMAPHORES
|
||||
LDFLAGS_C += -Wl,-install_name,lib$(MQTTLIB_C).so.${MAJOR_VERSION}
|
||||
LDFLAGS_CS += -Wl,-install_name,lib$(MQTTLIB_CS).so.${MAJOR_VERSION}
|
||||
LDFLAGS_A += -Wl,-install_name,lib${MQTTLIB_A}.so.${MAJOR_VERSION}
|
||||
LDFLAGS_AS += -Wl,-install_name,lib${MQTTLIB_AS}.so.${MAJOR_VERSION}
|
||||
|
||||
EXTRA_LIB = -ld
|
||||
endif
|
||||
INSTALL_PROGRAM = $(INSTALL)
|
||||
INSTALL_DATA = $(INSTALL) -m 644
|
||||
DOXYGEN_COMMAND = doxygen
|
||||
|
||||
MAJOR_VERSION = 1
|
||||
MINOR_VERSION = 0
|
||||
VERSION = ${MAJOR_VERSION}.${MINOR_VERSION}
|
||||
|
||||
MQTTLIB_C_TARGET = ${blddir}/lib${MQTTLIB_C}.so.${VERSION}
|
||||
MQTTLIB_CS_TARGET = ${blddir}/lib${MQTTLIB_CS}.so.${VERSION}
|
||||
MQTTLIB_A_TARGET = ${blddir}/lib${MQTTLIB_A}.so.${VERSION}
|
||||
MQTTLIB_AS_TARGET = ${blddir}/lib${MQTTLIB_AS}.so.${VERSION}
|
||||
MQTTVERSION_TARGET = ${blddir}/MQTTVersion
|
||||
|
||||
CCFLAGS_SO = -g -fPIC -Os -Wall -fvisibility=hidden
|
||||
FLAGS_EXE = -I ${srcdir} -lpthread -L ${blddir}
|
||||
|
||||
LDFLAGS_C = -shared -Wl,-soname,lib$(MQTTLIB_C).so.${MAJOR_VERSION} -Wl,-init,MQTTClient_init -lpthread
|
||||
LDFLAGS_CS = -shared -Wl,-soname,lib$(MQTTLIB_CS).so.${MAJOR_VERSION} -lpthread -ldl -lssl -lcrypto -Wl,-no-whole-archive -Wl,-init,MQTTClient_init
|
||||
LDFLAGS_A = -shared -Wl,-soname,lib${MQTTLIB_A}.so.${MAJOR_VERSION} -Wl,-init,MQTTAsync_init -lpthread
|
||||
LDFLAGS_AS = -shared -Wl,-soname,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -lpthread -ldl -lssl -lcrypto -Wl,-no-whole-archive -Wl,-init,MQTTAsync_init
|
||||
|
||||
all: build
|
||||
|
||||
|
|
@ -125,23 +145,23 @@ mkdir:
|
|||
-mkdir -p ${blddir}/samples
|
||||
-mkdir -p ${blddir}/test
|
||||
|
||||
${SYNC_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c
|
||||
${CC} -g -o ${blddir}/test/${basename ${+F}} $< -l${MQTTLIB_C} ${FLAGS_EXE}
|
||||
${SYNC_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c $(MQTTLIB_C_TARGET)
|
||||
${CC} -g -o $@ $< -l${MQTTLIB_C} ${FLAGS_EXE}
|
||||
|
||||
${SYNC_SSL_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c
|
||||
${CC} -g -o ${blddir}/test/${basename ${+F}} $< -l${MQTTLIB_CS} ${FLAGS_EXE} -lssl
|
||||
${SYNC_SSL_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c $(MQTTLIB_CS_TARGET)
|
||||
${CC} -g -o $@ $< -l${MQTTLIB_CS} ${FLAGS_EXES}
|
||||
|
||||
${ASYNC_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c
|
||||
${CC} -g -o ${blddir}/test/${basename ${+F}} $< -l${MQTTLIB_A} ${FLAGS_EXE}
|
||||
${ASYNC_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c $(MQTTLIB_CS_TARGET)
|
||||
${CC} -g -o $@ $< -l${MQTTLIB_A} ${FLAGS_EXE}
|
||||
|
||||
${ASYNC_SSL_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c
|
||||
${CC} -g -o ${blddir}/test/${basename ${+F}} $< -l${MQTTLIB_AS} ${FLAGS_EXE} -lssl
|
||||
${ASYNC_SSL_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c $(MQTTLIB_CS_TARGET) $(MQTTLIB_AS_TARGET)
|
||||
${CC} -g -o $@ $< -l${MQTTLIB_AS} ${FLAGS_EXES}
|
||||
|
||||
${SYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c
|
||||
${CC} -o ${blddir}/samples/${basename ${+F}} $< -l${MQTTLIB_C} ${FLAGS_EXE}
|
||||
${SYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c $(MQTTLIB_C_TARGET)
|
||||
${CC} -o $@ $< -l${MQTTLIB_C} ${FLAGS_EXE}
|
||||
|
||||
${ASYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c
|
||||
${CC} -o ${blddir}/samples/${basename ${+F}} $< -l${MQTTLIB_A} ${FLAGS_EXE}
|
||||
${ASYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c $(MQTTLIB_A_TARGET)
|
||||
${CC} -o $@ $< -l${MQTTLIB_A} ${FLAGS_EXE}
|
||||
|
||||
${MQTTLIB_C_TARGET}: ${SOURCE_FILES_C} ${HEADERS_C}
|
||||
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_C} ${LDFLAGS_C}
|
||||
|
|
@ -163,7 +183,7 @@ ${MQTTLIB_AS_TARGET}: ${SOURCE_FILES_AS} ${HEADERS_A}
|
|||
-ln -s lib$(MQTTLIB_AS).so.${VERSION} ${blddir}/lib$(MQTTLIB_AS).so.${MAJOR_VERSION}
|
||||
-ln -s lib$(MQTTLIB_AS).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_AS).so
|
||||
|
||||
${MQTTVERSION_TARGET}: $(srcdir)/MQTTVersion.c $(srcdir)/MQTTAsync.h
|
||||
${MQTTVERSION_TARGET}: $(srcdir)/MQTTVersion.c $(srcdir)/MQTTAsync.h ${MQTTLIB_A_TARGET} $(MQTTLIB_CS_TARGET)
|
||||
${CC} ${FLAGS_EXE} -o $@ -l${MQTTLIB_A} $(srcdir)/MQTTVersion.c -ldl
|
||||
|
||||
strip_options:
|
||||
|
|
@ -206,131 +226,3 @@ html:
|
|||
cd ${srcdir}; $(DOXYGEN_COMMAND) ../doc/DoxyfileV3ClientAPI
|
||||
cd ${srcdir}; $(DOXYGEN_COMMAND) ../doc/DoxyfileV3AsyncAPI
|
||||
cd ${srcdir}; $(DOXYGEN_COMMAND) ../doc/DoxyfileV3ClientInternal
|
||||
|
||||
endif
|
||||
|
||||
|
||||
|
||||
ifeq ($(OSTYPE),Darwin)
|
||||
|
||||
CC ?= gcc
|
||||
|
||||
ifndef INSTALL
|
||||
INSTALL = install
|
||||
endif
|
||||
INSTALL_PROGRAM = $(INSTALL)
|
||||
INSTALL_DATA = $(INSTALL) -m 644
|
||||
DOXYGEN_COMMAND = doxygen
|
||||
|
||||
MAJOR_VERSION = 1
|
||||
MINOR_VERSION = 0
|
||||
VERSION = ${MAJOR_VERSION}.${MINOR_VERSION}
|
||||
|
||||
MQTTLIB_C_TARGET = ${blddir}/lib${MQTTLIB_C}.so.${VERSION}
|
||||
MQTTLIB_CS_TARGET = ${blddir}/lib${MQTTLIB_CS}.so.${VERSION}
|
||||
MQTTLIB_A_TARGET = ${blddir}/lib${MQTTLIB_A}.so.${VERSION}
|
||||
MQTTLIB_AS_TARGET = ${blddir}/lib${MQTTLIB_AS}.so.${VERSION}
|
||||
MQTTVERSION_TARGET = ${blddir}/MQTTVersion
|
||||
|
||||
CCFLAGS_SO = -g -fPIC -Os -Wall -fvisibility=hidden -Wno-deprecated-declarations -DUSE_NAMED_SEMAPHORES
|
||||
FLAGS_EXE = -I ${srcdir} -lpthread -L ${blddir}
|
||||
|
||||
LDFLAGS_C = -shared -Wl,-install_name,lib$(MQTTLIB_C).so.${MAJOR_VERSION} -Wl,-init,_MQTTClient_init -lpthread
|
||||
LDFLAGS_CS = -shared -Wl,-install_name,lib$(MQTTLIB_CS).so.${MAJOR_VERSION} -lpthread -ldl -lssl -lcrypto -Wl,-init,_MQTTClient_init
|
||||
LDFLAGS_A = -shared -Wl,-install_name,lib${MQTTLIB_A}.so.${MAJOR_VERSION} -Wl,-init,_MQTTAsync_init -lpthread
|
||||
LDFLAGS_AS = -shared -Wl,-install_name,lib${MQTTLIB_AS}.so.${MAJOR_VERSION} -lpthread -ldl -lssl -lcrypto -Wl,-init,_MQTTAsync_init
|
||||
|
||||
all: build
|
||||
|
||||
build: | mkdir ${MQTTLIB_C_TARGET} ${MQTTLIB_CS_TARGET} ${MQTTLIB_A_TARGET} ${MQTTLIB_AS_TARGET} ${MQTTVERSION_TARGET} ${SYNC_SAMPLES} ${ASYNC_SAMPLES} ${SYNC_TESTS} ${SYNC_SSL_TESTS} ${ASYNC_TESTS} ${ASYNC_SSL_TESTS}
|
||||
|
||||
clean:
|
||||
rm -rf ${blddir}/*
|
||||
|
||||
mkdir:
|
||||
-mkdir -p ${blddir}/samples
|
||||
-mkdir -p ${blddir}/test
|
||||
|
||||
${SYNC_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c
|
||||
${CC} -g -o ${blddir}/test/${basename ${+F}} $< -l${MQTTLIB_C} ${FLAGS_EXE}
|
||||
|
||||
${SYNC_SSL_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c
|
||||
${CC} -g -o ${blddir}/test/${basename ${+F}} $< -l${MQTTLIB_CS} ${FLAGS_EXE} -lssl
|
||||
|
||||
${ASYNC_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c
|
||||
${CC} -g -o ${blddir}/test/${basename ${+F}} $< -l${MQTTLIB_A} ${FLAGS_EXE}
|
||||
|
||||
${ASYNC_SSL_TESTS}: ${blddir}/test/%: ${srcdir}/../test/%.c
|
||||
${CC} -g -o ${blddir}/test/${basename ${+F}} $< -l${MQTTLIB_AS} ${FLAGS_EXE} -lssl
|
||||
|
||||
${SYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c
|
||||
${CC} -o ${blddir}/samples/${basename ${+F}} $< -l${MQTTLIB_C} ${FLAGS_EXE}
|
||||
|
||||
${ASYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/samples/%.c
|
||||
${CC} -o ${blddir}/samples/${basename ${+F}} $< -l${MQTTLIB_A} ${FLAGS_EXE}
|
||||
|
||||
${MQTTLIB_C_TARGET}: ${SOURCE_FILES_C} ${HEADERS_C}
|
||||
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_C} ${LDFLAGS_C}
|
||||
-ln -s lib$(MQTTLIB_C).so.${VERSION} ${blddir}/lib$(MQTTLIB_C).so.${MAJOR_VERSION}
|
||||
-ln -s lib$(MQTTLIB_C).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_C).so
|
||||
|
||||
${MQTTLIB_CS_TARGET}: ${SOURCE_FILES_CS} ${HEADERS_C}
|
||||
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_CS} -DOPENSSL ${LDFLAGS_CS}
|
||||
-ln -s lib$(MQTTLIB_CS).so.${VERSION} ${blddir}/lib$(MQTTLIB_CS).so.${MAJOR_VERSION}
|
||||
-ln -s lib$(MQTTLIB_CS).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_CS).so
|
||||
|
||||
${MQTTLIB_A_TARGET}: ${SOURCE_FILES_A} ${HEADERS_A}
|
||||
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_A} ${LDFLAGS_A}
|
||||
-ln -s lib$(MQTTLIB_A).so.${VERSION} ${blddir}/lib$(MQTTLIB_A).so.${MAJOR_VERSION}
|
||||
-ln -s lib$(MQTTLIB_A).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_A).so
|
||||
|
||||
${MQTTLIB_AS_TARGET}: ${SOURCE_FILES_AS} ${HEADERS_A}
|
||||
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_AS} -DOPENSSL ${LDFLAGS_AS}
|
||||
-ln -s lib$(MQTTLIB_AS).so.${VERSION} ${blddir}/lib$(MQTTLIB_AS).so.${MAJOR_VERSION}
|
||||
-ln -s lib$(MQTTLIB_AS).so.${MAJOR_VERSION} ${blddir}/lib$(MQTTLIB_AS).so
|
||||
|
||||
${MQTTVERSION_TARGET}: $(srcdir)/MQTTVersion.c $(srcdir)/MQTTAsync.h
|
||||
${CC} ${FLAGS_EXE} -o $@ -l${MQTTLIB_A} $(srcdir)/MQTTVersion.c -ldl
|
||||
|
||||
strip_options:
|
||||
$(eval INSTALL_OPTS := -s)
|
||||
|
||||
install-strip: build strip_options install
|
||||
|
||||
install: build
|
||||
$(INSTALL_DATA) ${INSTALL_OPTS} ${MQTTLIB_C_TARGET} $(DESTDIR)${libdir}
|
||||
$(INSTALL_DATA) ${INSTALL_OPTS} ${MQTTLIB_CS_TARGET} $(DESTDIR)${libdir}
|
||||
$(INSTALL_DATA) ${INSTALL_OPTS} ${MQTTLIB_A_TARGET} $(DESTDIR)${libdir}
|
||||
$(INSTALL_DATA) ${INSTALL_OPTS} ${MQTTLIB_AS_TARGET} $(DESTDIR)${libdir}
|
||||
$(INSTALL_PROGRAM) ${INSTALL_OPTS} ${MQTTVERSION_TARGET} $(DESTDIR)${bindir}
|
||||
/sbin/ldconfig $(DESTDIR)${libdir}
|
||||
ln -s lib$(MQTTLIB_C).so.${MAJOR_VERSION} $(DESTDIR)${libdir}/lib$(MQTTLIB_C).so
|
||||
ln -s lib$(MQTTLIB_CS).so.${MAJOR_VERSION} $(DESTDIR)${libdir}/lib$(MQTTLIB_CS).so
|
||||
ln -s lib$(MQTTLIB_A).so.${MAJOR_VERSION} $(DESTDIR)${libdir}/lib$(MQTTLIB_A).so
|
||||
ln -s lib$(MQTTLIB_AS).so.${MAJOR_VERSION} $(DESTDIR)${libdir}/lib$(MQTTLIB_AS).so
|
||||
$(INSTALL_DATA) ${srcdir}/MQTTAsync.h $(DESTDIR)${includedir}
|
||||
$(INSTALL_DATA) ${srcdir}/MQTTClient.h $(DESTDIR)${includedir}
|
||||
$(INSTALL_DATA) ${srcdir}/MQTTClientPersistence.h $(DESTDIR)${includedir}
|
||||
|
||||
uninstall:
|
||||
rm $(DESTDIR)${libdir}/lib$(MQTTLIB_C).so.${VERSION}
|
||||
rm $(DESTDIR)${libdir}/lib$(MQTTLIB_CS).so.${VERSION}
|
||||
rm $(DESTDIR)${libdir}/lib$(MQTTLIB_A).so.${VERSION}
|
||||
rm $(DESTDIR)${libdir}/lib$(MQTTLIB_AS).so.${VERSION}
|
||||
rm $(DESTDIR)${bindir}/MQTTVersion
|
||||
/sbin/ldconfig $(DESTDIR)${libdir}
|
||||
rm $(DESTDIR)${libdir}/lib$(MQTTLIB_C).so
|
||||
rm $(DESTDIR)${libdir}/lib$(MQTTLIB_CS).so
|
||||
rm $(DESTDIR)${libdir}/lib$(MQTTLIB_A).so
|
||||
rm $(DESTDIR)${libdir}/lib$(MQTTLIB_AS).so
|
||||
rm $(DESTDIR)${includedir}/MQTTAsync.h
|
||||
rm $(DESTDIR)${includedir}/MQTTClient.h
|
||||
rm $(DESTDIR)${includedir}/MQTTClientPersistence.h
|
||||
|
||||
html:
|
||||
-mkdir -p ${blddir}/doc
|
||||
cd ${srcdir}; $(DOXYGEN_COMMAND) ../doc/DoxyfileV3ClientAPI
|
||||
cd ${srcdir}; $(DOXYGEN_COMMAND) ../doc/DoxyfileV3AsyncAPI
|
||||
cd ${srcdir}; $(DOXYGEN_COMMAND) ../doc/DoxyfileV3ClientInternal
|
||||
|
||||
endif
|
||||
|
|
|
|||
Loading…
Reference in New Issue