@@ -34,14 +34,25 @@ TINYCBOR_SOURCES = \
34
34
CBORDUMP_SOURCES = tools/cbordump/cbordump.c
35
35
36
36
BUILD_SHARED = $(shell file -L /bin/sh 2>/dev/null | grep -q ELF && echo 1)
37
+ BUILD_STATIC = 1
38
+
39
+ ifneq ($(BUILD_STATIC ) ,1)
40
+ ifneq ($(BUILD_SHARED ) ,1)
41
+ $(error error : BUILD_STATIC and BUILD_SHARED can not be both disabled)
42
+ endif
43
+ endif
37
44
38
45
INSTALL_TARGETS += $(bindir ) /cbordump
39
- INSTALL_TARGETS += $(libdir ) /libtinycbor.a
40
46
ifeq ($(BUILD_SHARED ) ,1)
47
+ BINLIBRARY =lib/libtinycbor.so
41
48
INSTALL_TARGETS += $(libdir ) /libtinycbor.so
42
49
INSTALL_TARGETS += $(libdir ) /libtinycbor.so.0
43
50
INSTALL_TARGETS += $(libdir ) /libtinycbor.so.$(VERSION )
44
51
endif
52
+ ifeq ($(BUILD_STATIC ) ,1)
53
+ BINLIBRARY =lib/libtinycbor.a
54
+ INSTALL_TARGETS += $(libdir ) /libtinycbor.a
55
+ endif
45
56
INSTALL_TARGETS += $(pkgconfigdir ) /tinycbor.pc
46
57
INSTALL_TARGETS += $(TINYCBOR_HEADERS:src/%=$(includedir ) /tinycbor/% )
47
58
@@ -103,13 +114,14 @@ ifneq ($(cjson-pass)$(system-cjson-pass),)
103
114
endif
104
115
105
116
# Rules
106
- all : .config lib/libtinycbor.a \
117
+ all : .config \
118
+ $(if $(subst 0,,$(BUILD_STATIC ) ) ,lib/libtinycbor.a) \
107
119
$(if $(subst 0,,$(BUILD_SHARED ) ) ,lib/libtinycbor.so) \
108
120
bin/cbordump tinycbor.pc
109
121
all : $(if $(JSON2CBOR_SOURCES ) ,bin/json2cbor)
110
- check : tests/Makefile | lib/libtinycbor.a
122
+ check : tests/Makefile | $( BINLIBRARY )
111
123
$(MAKE ) -C tests check
112
- silentcheck : | lib/libtinycbor.a
124
+ silentcheck : | $( BINLIBRARY )
113
125
TESTARGS=-silent $(MAKE ) -f $(MAKEFILE ) -s check
114
126
configure : .config
115
127
.config : Makefile.configure
@@ -120,14 +132,15 @@ lib/libtinycbor.a: $(TINYCBOR_SOURCES:.c=.o)
120
132
$(AR ) cqs $@ $^
121
133
122
134
lib/libtinycbor.so : $(TINYCBOR_SOURCES:.c=.pic.o )
135
+ @$(MKDIR ) -p lib
123
136
$(CC ) -shared -Wl,-soname,libtinycbor.so.0 -o lib/libtinycbor.so.$(VERSION ) $(LDFLAGS ) $^
124
137
cd lib ; ln -s libtinycbor.so.$(VERSION ) libtinycbor.so ; ln -s libtinycbor.so.$(VERSION ) libtinycbor.so.0
125
138
126
- bin/cbordump : $(CBORDUMP_SOURCES:.c=.o ) lib/libtinycbor.a
139
+ bin/cbordump : $(CBORDUMP_SOURCES:.c=.o ) $( BINLIBRARY )
127
140
@$(MKDIR ) -p bin
128
141
$(CC ) -o $@ $(LDFLAGS ) $^ $(LDLIBS ) -lm
129
142
130
- bin/json2cbor : $(JSON2CBOR_SOURCES:.c=.o ) lib/libtinycbor.a
143
+ bin/json2cbor : $(JSON2CBOR_SOURCES:.c=.o ) $( BINLIBRARY )
131
144
@$(MKDIR ) -p bin
132
145
$(CC ) -o $@ $(LDFLAGS ) $^ $(LDFLAGS_CJSON ) $(LDLIBS ) -lm
133
146
0 commit comments