APUE Learning Example Source Code
guowenxue
2019-06-26 157be0b0d4c7d4809cfcafc76235cc18388378c8
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
include ../config.mk
 
.PHONY: all install uninstall reallyclean clean static static_pub static_sub static_rr
 
ifeq ($(WITH_SHARED_LIBRARIES),yes)
SHARED_DEP:=../lib/libmosquitto.so.${SOVERSION}
endif
 
ifeq ($(WITH_SHARED_LIBRARIES),yes)
ALL_DEPS:= mosquitto_pub mosquitto_sub mosquitto_rr
else
ifeq ($(WITH_STATIC_LIBRARIES),yes)
ALL_DEPS:= static_pub static_sub static_rr
endif
endif
 
all : ${ALL_DEPS}
 
static : static_pub static_sub static_rr
    # This makes mosquitto_pub/sub/rr versions that are statically linked with
    # libmosquitto only.
 
static_pub : pub_client.o pub_shared.o client_props.o client_shared.o ../lib/libmosquitto.a
    ${CROSS_COMPILE}${CC} $^ -o mosquitto_pub ${CLIENT_LDFLAGS} ${STATIC_LIB_DEPS}
 
static_sub : sub_client.o sub_client_output.o client_props.o client_shared.o ../lib/libmosquitto.a
    ${CROSS_COMPILE}${CC} $^ -o mosquitto_sub ${CLIENT_LDFLAGS} ${STATIC_LIB_DEPS}
 
static_rr : rr_client.o client_props.o client_shared.o pub_shared.o sub_client_output.o ../lib/libmosquitto.a
    ${CROSS_COMPILE}${CC} $^ -o mosquitto_rr ${CLIENT_LDFLAGS} ${STATIC_LIB_DEPS}
 
mosquitto_pub : pub_client.o pub_shared.o client_shared.o client_props.o
    ${CROSS_COMPILE}${CC} $(CLIENT_LDFLAGS) $^ -o $@ $(CLIENT_LDADD)
 
mosquitto_sub : sub_client.o sub_client_output.o client_shared.o client_props.o
    ${CROSS_COMPILE}${CC} $(CLIENT_LDFLAGS) $^ -o $@ $(CLIENT_LDADD)
 
mosquitto_rr : rr_client.o client_shared.o client_props.o pub_shared.o sub_client_output.o
    ${CROSS_COMPILE}${CC} $(CLIENT_LDFLAGS) $^ -o $@ $(CLIENT_LDADD)
 
pub_client.o : pub_client.c ${SHARED_DEP}
    ${CROSS_COMPILE}${CC} $(CLIENT_CPPFLAGS) $(CLIENT_CFLAGS) -c $< -o $@
 
pub_shared.o : pub_shared.c ${SHARED_DEP}
    ${CROSS_COMPILE}${CC} $(CLIENT_CPPFLAGS) $(CLIENT_CFLAGS) -c $< -o $@
 
sub_client.o : sub_client.c ${SHARED_DEP}
    ${CROSS_COMPILE}${CC} $(CLIENT_CPPFLAGS) $(CLIENT_CFLAGS) -c $< -o $@
 
sub_client_output.o : sub_client_output.c ${SHARED_DEP}
    ${CROSS_COMPILE}${CC} $(CLIENT_CPPFLAGS) $(CLIENT_CFLAGS) -c $< -o $@
 
rr_client.o : rr_client.c ${SHARED_DEP}
    ${CROSS_COMPILE}${CC} $(CLIENT_CPPFLAGS) $(CLIENT_CFLAGS) -c $< -o $@
 
client_shared.o : client_shared.c client_shared.h
    ${CROSS_COMPILE}${CC} $(CLIENT_CPPFLAGS) $(CLIENT_CFLAGS) -c $< -o $@
 
client_props.o : client_props.c client_shared.h
    ${CROSS_COMPILE}${CC} $(CLIENT_CPPFLAGS) $(CLIENT_CFLAGS) -c $< -o $@
 
../lib/libmosquitto.so.${SOVERSION} :
    $(MAKE) -C ../lib
 
../lib/libmosquitto.a :
    $(MAKE) -C ../lib libmosquitto.a
 
install : all
    $(INSTALL) -d "${DESTDIR}$(prefix)/bin"
    $(INSTALL) ${STRIP_OPTS} mosquitto_pub "${DESTDIR}${prefix}/bin/mosquitto_pub"
    $(INSTALL) ${STRIP_OPTS} mosquitto_sub "${DESTDIR}${prefix}/bin/mosquitto_sub"
    $(INSTALL) ${STRIP_OPTS} mosquitto_rr "${DESTDIR}${prefix}/bin/mosquitto_rr"
 
uninstall :
    -rm -f "${DESTDIR}${prefix}/bin/mosquitto_pub"
    -rm -f "${DESTDIR}${prefix}/bin/mosquitto_sub"
    -rm -f "${DESTDIR}${prefix}/bin/mosquitto_rr"
 
reallyclean : clean
 
clean : 
    -rm -f *.o mosquitto_pub mosquitto_sub mosquitto_rr *.gcda *.gcno