@@ -34,14 +34,25 @@ TINYCBOR_SOURCES = \
3434CBORDUMP_SOURCES = tools/cbordump/cbordump.c
3535
3636BUILD_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
3744
3845INSTALL_TARGETS += $(bindir ) /cbordump
39- INSTALL_TARGETS += $(libdir ) /libtinycbor.a
4046ifeq ($(BUILD_SHARED ) ,1)
47+ BINLIBRARY =lib/libtinycbor.so
4148INSTALL_TARGETS += $(libdir ) /libtinycbor.so
4249INSTALL_TARGETS += $(libdir ) /libtinycbor.so.0
4350INSTALL_TARGETS += $(libdir ) /libtinycbor.so.$(VERSION )
4451endif
52+ ifeq ($(BUILD_STATIC ) ,1)
53+ BINLIBRARY =lib/libtinycbor.a
54+ INSTALL_TARGETS += $(libdir ) /libtinycbor.a
55+ endif
4556INSTALL_TARGETS += $(pkgconfigdir ) /tinycbor.pc
4657INSTALL_TARGETS += $(TINYCBOR_HEADERS:src/%=$(includedir ) /tinycbor/% )
4758
@@ -103,13 +114,14 @@ ifneq ($(cjson-pass)$(system-cjson-pass),)
103114endif
104115
105116# Rules
106- all : .config lib/libtinycbor.a \
117+ all : .config \
118+ $(if $(subst 0,,$(BUILD_STATIC ) ) ,lib/libtinycbor.a) \
107119 $(if $(subst 0,,$(BUILD_SHARED ) ) ,lib/libtinycbor.so) \
108120 bin/cbordump tinycbor.pc
109121all : $(if $(JSON2CBOR_SOURCES ) ,bin/json2cbor)
110- check : tests/Makefile | lib/libtinycbor.a
122+ check : tests/Makefile | $( BINLIBRARY )
111123 $(MAKE ) -C tests check
112- silentcheck : | lib/libtinycbor.a
124+ silentcheck : | $( BINLIBRARY )
113125 TESTARGS=-silent $(MAKE ) -f $(MAKEFILE ) -s check
114126configure : .config
115127.config : Makefile.configure
@@ -120,14 +132,15 @@ lib/libtinycbor.a: $(TINYCBOR_SOURCES:.c=.o)
120132 $(AR ) cqs $@ $^
121133
122134lib/libtinycbor.so : $(TINYCBOR_SOURCES:.c=.pic.o )
135+ @$(MKDIR ) -p lib
123136 $(CC ) -shared -Wl,-soname,libtinycbor.so.0 -o lib/libtinycbor.so.$(VERSION ) $(LDFLAGS ) $^
124137 cd lib ; ln -s libtinycbor.so.$(VERSION ) libtinycbor.so ; ln -s libtinycbor.so.$(VERSION ) libtinycbor.so.0
125138
126- bin/cbordump : $(CBORDUMP_SOURCES:.c=.o ) lib/libtinycbor.a
139+ bin/cbordump : $(CBORDUMP_SOURCES:.c=.o ) $( BINLIBRARY )
127140 @$(MKDIR ) -p bin
128141 $(CC ) -o $@ $(LDFLAGS ) $^ $(LDLIBS ) -lm
129142
130- bin/json2cbor : $(JSON2CBOR_SOURCES:.c=.o ) lib/libtinycbor.a
143+ bin/json2cbor : $(JSON2CBOR_SOURCES:.c=.o ) $( BINLIBRARY )
131144 @$(MKDIR ) -p bin
132145 $(CC ) -o $@ $(LDFLAGS ) $^ $(LDFLAGS_CJSON ) $(LDLIBS ) -lm
133146
0 commit comments