221 lines
5.6 KiB
Makefile
221 lines
5.6 KiB
Makefile
|
#*******************************************************************************
|
||
|
# Copyright (c) 2009, 2014 IBM Corp.
|
||
|
#
|
||
|
# All rights reserved. This program and the accompanying materials
|
||
|
# are made available under the terms of the Eclipse Public License v1.0
|
||
|
# and Eclipse Distribution License v1.0 which accompany this distribution.
|
||
|
#
|
||
|
# The Eclipse Public License is available at
|
||
|
# http://www.eclipse.org/legal/epl-v10.html
|
||
|
# and the Eclipse Distribution License is available at
|
||
|
# http://www.eclipse.org/org/documents/edl-v10.php.
|
||
|
#
|
||
|
# Contributors:
|
||
|
# Xiang Rong - 442039 Add makefile to Embedded C client
|
||
|
#*******************************************************************************/
|
||
|
|
||
|
# Note: on OS X you should install XCode and the associated command-line tools
|
||
|
|
||
|
SHELL = /bin/sh
|
||
|
.PHONY: clean, mkdir, install, uninstall, html
|
||
|
|
||
|
# assume this is normally run in the main Paho directory
|
||
|
ifndef srcdir
|
||
|
srcdir = MQTTPacket/src
|
||
|
endif
|
||
|
|
||
|
ifndef blddir
|
||
|
blddir = build/output
|
||
|
endif
|
||
|
|
||
|
ifndef prefix
|
||
|
prefix = /usr/local
|
||
|
endif
|
||
|
|
||
|
ifndef exec_prefix
|
||
|
exec_prefix = ${prefix}
|
||
|
endif
|
||
|
|
||
|
bindir = $(exec_prefix)/bin
|
||
|
includedir = $(prefix)/include
|
||
|
libdir = $(exec_prefix)/lib
|
||
|
|
||
|
SOURCE_FILES_C = $(srcdir)/*.c
|
||
|
|
||
|
HEADERS = $(srcdir)/*.h
|
||
|
|
||
|
|
||
|
SAMPLE_FILES_C = pub0sub1 qos0pub
|
||
|
SYNC_SAMPLES = ${addprefix ${blddir}/samples/,${SAMPLE_FILES_C}}
|
||
|
|
||
|
|
||
|
TEST_FILES_C = test1
|
||
|
SYNC_TESTS = ${addprefix ${blddir}/test/,${TEST_FILES_C}}
|
||
|
|
||
|
|
||
|
# The names of libraries to be built
|
||
|
MQTT_EMBED_LIB_C = paho-embed-mqtt3c
|
||
|
|
||
|
|
||
|
# determine current platform
|
||
|
ifeq ($(OS),Windows_NT)
|
||
|
OSTYPE = $(OS)
|
||
|
else
|
||
|
OSTYPE = $(shell uname -s)
|
||
|
MACHINETYPE = $(shell uname -m)
|
||
|
endif
|
||
|
|
||
|
ifeq ($(OSTYPE),Linux)
|
||
|
|
||
|
CC ?= gcc
|
||
|
|
||
|
ifndef INSTALL
|
||
|
INSTALL = install
|
||
|
endif
|
||
|
INSTALL_PROGRAM = $(INSTALL)
|
||
|
INSTALL_DATA = $(INSTALL) -m 644
|
||
|
|
||
|
MAJOR_VERSION = 1
|
||
|
MINOR_VERSION = 0
|
||
|
VERSION = ${MAJOR_VERSION}.${MINOR_VERSION}
|
||
|
|
||
|
EMBED_MQTTLIB_C_TARGET = ${blddir}/lib${MQTT_EMBED_LIB_C}.so.${VERSION}
|
||
|
|
||
|
|
||
|
CCFLAGS_SO = -g -fPIC -Os -Wall -fvisibility=hidden -DLINUX_SO
|
||
|
FLAGS_EXE = -I ${srcdir} -L ${blddir}
|
||
|
|
||
|
LDFLAGS_C = -shared -Wl,-soname,lib$(MQTT_EMBED_LIB_C).so.${MAJOR_VERSION}
|
||
|
|
||
|
all: build
|
||
|
|
||
|
build: | mkdir ${EMBED_MQTTLIB_C_TARGET} ${SYNC_SAMPLES} ${SYNC_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${MQTT_EMBED_LIB_C} ${FLAGS_EXE}
|
||
|
|
||
|
|
||
|
${SYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/../samples/%.c ${srcdir}/../samples/transport.o
|
||
|
${CC} -o $@ $^ -l${MQTT_EMBED_LIB_C} ${FLAGS_EXE}
|
||
|
|
||
|
|
||
|
|
||
|
${EMBED_MQTTLIB_C_TARGET}: ${SOURCE_FILES_C} ${HEADERS_C}
|
||
|
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_C} ${LDFLAGS_C}
|
||
|
-ln -s lib$(MQTT_EMBED_LIB_C).so.${VERSION} ${blddir}/lib$(MQTT_EMBED_LIB_C).so.${MAJOR_VERSION}
|
||
|
-ln -s lib$(MQTT_EMBED_LIB_C).so.${MAJOR_VERSION} ${blddir}/lib$(MQTT_EMBED_LIB_C).so
|
||
|
|
||
|
|
||
|
strip_options:
|
||
|
$(eval INSTALL_OPTS := -s)
|
||
|
|
||
|
install-strip: build strip_options install
|
||
|
|
||
|
install: build
|
||
|
$(INSTALL_DATA) ${INSTALL_OPTS} ${EMBED_MQTTLIB_C_TARGET} $(DESTDIR)${libdir}
|
||
|
|
||
|
|
||
|
/sbin/ldconfig $(DESTDIR)${libdir}
|
||
|
ln -s lib$(MQTT_EMBED_LIB_C).so.${MAJOR_VERSION} $(DESTDIR)${libdir}/lib$(MQTT_EMBED_LIB_C).so
|
||
|
|
||
|
|
||
|
uninstall:
|
||
|
rm $(DESTDIR)${libdir}/lib$(MQTT_EMBED_LIB_C).so.${VERSION}
|
||
|
|
||
|
/sbin/ldconfig $(DESTDIR)${libdir}
|
||
|
rm $(DESTDIR)${libdir}/lib$(MQTT_EMBED_LIB_C).so
|
||
|
|
||
|
|
||
|
html:
|
||
|
|
||
|
ARDUINO_LIB_FILES = MQTTClient/src/*.h MQTTClient/src/arduino/*.h $(srcdir)/*
|
||
|
ARDUINO_SAMPLES = MQTTClient/samples/arduino/*
|
||
|
LEGAL_FILES = edl-v10 epl-v10 notice.html about.html CONTRIBUTING.md README.md library.properties
|
||
|
|
||
|
arduino: mkdir
|
||
|
-mkdir -p ${blddir}/arduino/MQTTClient/examples
|
||
|
-mkdir -p ${blddir}/arduino/MQTTClient/src
|
||
|
cp $(ARDUINO_LIB_FILES) ${blddir}/arduino/MQTTClient/src
|
||
|
cp $(LEGAL_FILES) ${blddir}/arduino/MQTTClient
|
||
|
cp -R $(ARDUINO_SAMPLES) ${blddir}/arduino/MQTTClient/examples
|
||
|
cd ${blddir}/arduino && zip -r arduino MQTTClient
|
||
|
|
||
|
endif
|
||
|
|
||
|
|
||
|
|
||
|
ifeq ($(OSTYPE),Darwin)
|
||
|
|
||
|
CC ?= gcc
|
||
|
|
||
|
ifndef INSTALL
|
||
|
INSTALL = install
|
||
|
endif
|
||
|
INSTALL_PROGRAM = $(INSTALL)
|
||
|
INSTALL_DATA = $(INSTALL) -m 644
|
||
|
|
||
|
MAJOR_VERSION = 1
|
||
|
MINOR_VERSION = 0
|
||
|
VERSION = ${MAJOR_VERSION}.${MINOR_VERSION}
|
||
|
|
||
|
EMBED_MQTTLIB_C_TARGET = ${blddir}/lib${MQTT_EMBED_LIB_C}.so.${VERSION}
|
||
|
|
||
|
|
||
|
CCFLAGS_SO = -g -fPIC -Os -Wall -fvisibility=hidden -Wno-deprecated-declarations -DUSE_NAMED_SEMAPHORES
|
||
|
FLAGS_EXE = -I ${srcdir} -L ${blddir}
|
||
|
|
||
|
LDFLAGS_C = -shared -Wl,-install_name,lib$(MQTT_EMBED_LIB_C).so.${MAJOR_VERSION}
|
||
|
|
||
|
all: build
|
||
|
|
||
|
build: | mkdir ${EMBED_MQTTLIB_C_TARGET} ${SYNC_SAMPLES} ${SYNC_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${MQTT_EMBED_LIB_C} ${FLAGS_EXE}
|
||
|
|
||
|
${SYNC_SAMPLES}: ${blddir}/samples/%: ${srcdir}/../samples/%.c
|
||
|
${CC} -o ${blddir}/samples/${basename ${+F}} $< ${FLAGS_EXE} -l${MQTT_EMBED_LIB_C}
|
||
|
|
||
|
${EMBED_MQTTLIB_C_TARGET}: ${SOURCE_FILES_C} ${HEADERS_C}
|
||
|
${CC} ${CCFLAGS_SO} -o $@ ${SOURCE_FILES_C} ${LDFLAGS_C}
|
||
|
-ln -s lib$(MQTT_EMBED_LIB_C).so.${VERSION} ${blddir}/lib$(MQTT_EMBED_LIB_C).so.${MAJOR_VERSION}
|
||
|
-ln -s lib$(MQTT_EMBED_LIB_C).so.${MAJOR_VERSION} ${blddir}/lib$(MQTT_EMBED_LIB_C).so
|
||
|
|
||
|
|
||
|
strip_options:
|
||
|
$(eval INSTALL_OPTS := -s)
|
||
|
|
||
|
install-strip: build strip_options install
|
||
|
|
||
|
install: build
|
||
|
$(INSTALL_DATA) ${INSTALL_OPTS} ${EMBED_MQTTLIB_C_TARGET} $(DESTDIR)${libdir}
|
||
|
|
||
|
/sbin/ldconfig $(DESTDIR)${libdir}
|
||
|
ln -s lib$(MQTT_EMBED_LIB_C).so.${MAJOR_VERSION} $(DESTDIR)${libdir}/lib$(MQTT_EMBED_LIB_C).so
|
||
|
|
||
|
|
||
|
uninstall:
|
||
|
rm $(DESTDIR)${libdir}/lib$(MQTT_EMBED_LIB_C).so.${VERSION}
|
||
|
/sbin/ldconfig $(DESTDIR)${libdir}
|
||
|
rm $(DESTDIR)${libdir}/lib$(MQTT_EMBED_LIB_C).so
|
||
|
|
||
|
|
||
|
html:
|
||
|
|
||
|
|
||
|
endif
|