Generate both shared and static libraries

pull/72/head
Tomáš Chvátal 6 years ago
parent b13655f7a5
commit aceb39d202
No known key found for this signature in database
GPG Key ID: E4A2468C8EEE3BE8

@ -51,16 +51,19 @@ CFLAGS ?= -std=c99 -O
# ---- Targets to build ----
LIB = qrcodegen
LIBFILE = lib$(LIB).a
ARFILE = lib$(LIB).a
LIBFILE = lib$(LIB).so
# Bump the soname number when the ABI changes and gets incompatible
SO_NAME = $(LIBFILE).1
LIBOBJ = qrcodegen.o
MAINS = qrcodegen-demo qrcodegen-test qrcodegen-worker
# Build all binaries
all: $(LIBFILE) $(MAINS)
all: $(LIBFILE) $(ARFILE) $(MAINS)
# Delete build output
clean:
rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
rm -rf .deps
# Executable files
@ -72,9 +75,12 @@ qrcodegen-test: qrcodegen-test.c $(LIBOBJ:%.o=%.c)
$(CC) $(CFLAGS) -DQRCODEGEN_TEST -o $@ $^
# The library
$(LIBFILE): $(LIBOBJ)
$(ARFILE): $(LIBOBJ)
$(AR) -crs $@ -- $^
$(LIBFILE): $(LIBOBJ)
$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
# Object files
%.o: %.c .deps/timestamp
$(CC) $(CFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<

@ -51,16 +51,19 @@ CXXFLAGS ?= -std=c++11 -O
# ---- Targets to build ----
LIB = qrcodegen
LIBFILE = lib$(LIB).a
ARFILE = lib$(LIB).a
LIBFILE = lib$(LIB).so
# Bump the soname number when the ABI changes and gets incompatible
SO_NAME = $(LIBFILE).1
LIBOBJ = QrCode.o
MAINS = QrCodeGeneratorDemo QrCodeGeneratorWorker
# Build all binaries
all: $(LIBFILE) $(MAINS)
all: $(LIBFILE) $(ARFILE) $(MAINS)
# Delete build output
clean:
rm -f -- $(LIBOBJ) $(LIBFILE) $(MAINS:=.o) $(MAINS)
rm -f -- $(LIBOBJ) $(LIBFILE) $(ARFILE) $(MAINS:=.o) $(MAINS)
rm -rf .deps
# Executable files
@ -68,9 +71,12 @@ clean:
$(CXX) $(CXXFLAGS) -o $@ $< -L . -l $(LIB)
# The library
$(LIBFILE): $(LIBOBJ)
$(ARFILE): $(LIBOBJ)
$(AR) -crs $@ -- $^
$(LIBFILE): $(LIBOBJ)
$(CC) -shared -Wl,-soname,$(SO_NAME) $(LDFLAGS) -o $@ $^
# Object files
%.o: %.cpp .deps/timestamp
$(CXX) $(CXXFLAGS) -fPIC -c -o $@ -MMD -MF .deps/$*.d $<

Loading…
Cancel
Save