From d79e0e7c7eea082aee412b51c89a1e77ff35a67b Mon Sep 17 00:00:00 2001 From: Toon Schoenmakers Date: Fri, 30 Oct 2015 14:29:55 +0100 Subject: [PATCH] Added a static_fpic target so we can statically link this library into other libraries Also got rid of the -flto, which is pretty useless in libraries anyway. --- Makefile | 8 ++++++-- src/Makefile | 22 ++++++++++++++-------- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index 13296f4..8790cbc 100644 --- a/Makefile +++ b/Makefile @@ -17,6 +17,9 @@ static: shared: $(MAKE) -C src shared +static_fpic: + $(MAKE) -C src static_fpic + clean: $(MAKE) -C src clean @@ -25,8 +28,9 @@ install: mkdir -p ${LIBRARY_DIR} cp -f $(LIBRARY_NAME).h ${INCLUDE_DIR} cp -f include/*.h ${INCLUDE_DIR}/$(LIBRARY_NAME) - cp -f src/lib$(LIBRARY_NAME).so.$(VERSION) ${LIBRARY_DIR} - cp -f src/lib$(LIBRARY_NAME).a.$(VERSION) ${LIBRARY_DIR} + -cp -f src/lib$(LIBRARY_NAME).so.$(VERSION) ${LIBRARY_DIR} + -cp -f src/lib$(LIBRARY_NAME).a.$(VERSION) ${LIBRARY_DIR} + -cp -f src/lib$(LIBRARY_NAME)_fpic.a ${LIBRARY_DIR} ln -s -f $(LIBRARY_DIR)/lib$(LIBRARY_NAME).so.$(VERSION) $(LIBRARY_DIR)/lib$(LIBRARY_NAME).so.$(SONAME) ln -s -f $(LIBRARY_DIR)/lib$(LIBRARY_NAME).so.$(VERSION) $(LIBRARY_DIR)/lib$(LIBRARY_NAME).so ln -s -f $(LIBRARY_DIR)/lib$(LIBRARY_NAME).a.$(VERSION) $(LIBRARY_DIR)/lib$(LIBRARY_NAME).a diff --git a/src/Makefile b/src/Makefile index 1c9b188..10b81ca 100644 --- a/src/Makefile +++ b/src/Makefile @@ -1,11 +1,12 @@ -CPP = g++ -RM = rm -f -CPPFLAGS = -Wall -c -I. -flto -std=c++11 -LD = g++ -LD_FLAGS = -Wall -shared -SHARED_LIB = lib$(LIBRARY_NAME).so.$(VERSION) -STATIC_LIB = lib$(LIBRARY_NAME).a.$(VERSION) -SOURCES = $(wildcard *.cpp) +CPP = g++ +RM = rm -f +CPPFLAGS = -Wall -c -I. -std=c++11 +LD = g++ +LD_FLAGS = -Wall -shared +SHARED_LIB = lib$(LIBRARY_NAME).so.$(VERSION) +STATIC_LIB = lib$(LIBRARY_NAME).a.$(VERSION) +STATIC_FPIC_LIB = lib$(LIBRARY_NAME)_fpic.a +SOURCES = $(wildcard *.cpp) SHARED_OBJECTS = $(SOURCES:%.cpp=%.o) STATIC_OBJECTS = $(SOURCES:%.cpp=%.s.o) @@ -29,12 +30,17 @@ shared: ${SHARED_OBJECTS} ${SHARED_LIB} static: ${STATIC_OBJECTS} ${STATIC_LIB} +static_fpic: ${STATIC_FPIC_LIB} ${SHARED_OBJECTS} + ${SHARED_LIB}: ${SHARED_OBJECTS} ${LD} ${LD_FLAGS} -Wl,${SONAMEPARAMETER},lib$(LIBRARY_NAME).so.$(SONAME) -o $@ ${SHARED_OBJECTS} ${STATIC_LIB}: ${STATIC_OBJECTS} ar rcs ${STATIC_LIB} ${STATIC_OBJECTS} +${STATIC_FPIC_LIB}: ${SHARED_OBJECTS} + ar rcs ${STATIC_FPIC_LIB} ${SHARED_OBJECTS} + clean: ${RM} *.obj *~* ${SHARED_OBJECTS} ${STATIC_OBJECTS} ${SHARED_LIB} ${STATIC_LIB}