Build the CPP static library with bare Makefiles

In order to make the CPP static library include all
objects from the C static library, the list of objects
(MOSQ_OBJS) is isolated into objects.mk to be used for
building the C and CPP static libraries.

Signed-off-by: Lance Chen <cyen0312@gmail.com>
pull/183/head
Lance Chen 9 years ago
parent a9b7237d09
commit 4b4817c3f0
No known key found for this signature in database
GPG Key ID: 2B9B29056A82FEB1

@ -1,37 +1,8 @@
include ../config.mk
include objects.mk
.PHONY : really clean install
MOSQ_OBJS=mosquitto.o \
handle_connack.o \
handle_ping.o \
handle_pubackcomp.o \
handle_publish.o \
handle_pubrec.o \
handle_pubrel.o \
handle_suback.o \
handle_unsuback.o \
helpers.o \
logging_mosq.o \
memory_mosq.o \
messages_mosq.o \
net_mosq.o \
packet_mosq.o \
read_handle.o \
send_connect.o \
send_disconnect.o \
send_mosq.o \
send_publish.o \
send_subscribe.o \
send_unsubscribe.o \
socks_mosq.o \
srv_mosq.o \
thread_mosq.o \
time_mosq.o \
tls_mosq.o \
util_mosq.o \
will_mosq.o
all : libmosquitto.so.${SOVERSION} libmosquitto.a
$(MAKE) -C cpp
@ -57,10 +28,10 @@ clean :
-rm -f *.o libmosquitto.so.${SOVERSION} libmosquitto.so libmosquitto.a
$(MAKE) -C cpp clean
libmosquitto.so.${SOVERSION} : ${MOSQ_OBJS}
libmosquitto.so.${SOVERSION} : ${MOSQ_C_OBJS}
${CROSS_COMPILE}$(CC) -shared $(LIB_LDFLAGS) $^ -o $@ ${LIB_LIBS}
libmosquitto.a : ${MOSQ_OBJS}
libmosquitto.a : ${MOSQ_C_OBJS}
${CROSS_COMPILE}$(AR) cr $@ $^
mosquitto.o : mosquitto.c mosquitto.h

@ -1,4 +1,5 @@
include ../../config.mk
include ../objects.mk
ifneq ($(UNAME),SunOS)
LIB_LDFLAGS:=$(LDFLAGS) -Wl,-soname,libmosquittopp.so.${SOVERSION}
@ -6,26 +7,32 @@ endif
.PHONY : clean install
all : libmosquittopp.so.${SOVERSION}
all : libmosquittopp.so.${SOVERSION} libmosquittopp.a
install : all
$(INSTALL) -d ${DESTDIR}$(prefix)/lib${LIB_SUFFIX}/
$(INSTALL) -s --strip-program=${CROSS_COMPILE}${STRIP} libmosquittopp.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so.${SOVERSION}
ln -sf libmosquittopp.so.${SOVERSION} ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so
$(INSTALL) libmosquittopp.a ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.a
${CROSS_COMPILE}${STRIP} -g --strip-unneeded ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.a
$(INSTALL) -d ${DESTDIR}${prefix}/include/
$(INSTALL) mosquittopp.h ${DESTDIR}${prefix}/include/mosquittopp.h
uninstall :
-rm -f ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so.${SOVERSION}
-rm -f ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.so
-rm -f ${DESTDIR}${prefix}/lib${LIB_SUFFIX}/libmosquittopp.a
-rm -f ${DESTDIR}${prefix}/include/mosquittopp.h
clean :
-rm -f *.o libmosquittopp.so.${SOVERSION}
-rm -f *.o libmosquittopp.so.${SOVERSION} libmosquittopp.a
libmosquittopp.so.${SOVERSION} : mosquittopp.o
${CROSS_COMPILE}$(CXX) -shared $(LIB_LDFLAGS) $< -o $@ ../libmosquitto.so.${SOVERSION}
libmosquittopp.a : mosquittopp.o ${MOSQ_C_OBJS}
${CROSS_COMPILE}$(AR) cr $@ $^
mosquittopp.o : mosquittopp.cpp mosquittopp.h
${CROSS_COMPILE}$(CXX) $(LIB_CXXFLAGS) -c $< -o $@

@ -0,0 +1,32 @@
MOSQ_C_OBJ_NAMES=mosquitto.o \
handle_connack.o \
handle_ping.o \
handle_pubackcomp.o \
handle_publish.o \
handle_pubrec.o \
handle_pubrel.o \
handle_suback.o \
handle_unsuback.o \
helpers.o \
logging_mosq.o \
memory_mosq.o \
messages_mosq.o \
net_mosq.o \
packet_mosq.o \
read_handle.o \
send_connect.o \
send_disconnect.o \
send_mosq.o \
send_publish.o \
send_subscribe.o \
send_unsubscribe.o \
socks_mosq.o \
srv_mosq.o \
thread_mosq.o \
time_mosq.o \
tls_mosq.o \
util_mosq.o \
will_mosq.o
CURDIR=$(dir $(lastword $(MAKEFILE_LIST)))
MOSQ_C_OBJS=$(addprefix $(CURDIR), $(MOSQ_C_OBJ_NAMES))
Loading…
Cancel
Save