From 5fff65df2e3c94dd675f221adefe41aaa5dad314 Mon Sep 17 00:00:00 2001 From: syntheticpp Date: Tue, 21 Mar 2006 21:01:18 +0000 Subject: [PATCH] build shared lib also on mac osx, thx sto Sam Miller git-svn-id: svn://svn.code.sf.net/p/loki-lib/code/trunk@614 7ec92016-0320-0410-acc4-a06ded1c099a --- src/Makefile | 15 +++++++++++++-- test/SingletonDll/Makefile | 19 ++++++++++++++----- 2 files changed, 27 insertions(+), 7 deletions(-) diff --git a/src/Makefile b/src/Makefile index 4f7aa61..1980779 100755 --- a/src/Makefile +++ b/src/Makefile @@ -1,11 +1,22 @@ SRC = $(wildcard *.cpp) STATIC_OBJ = $(SRC:.cpp=.o) SHARED_OBJ = $(SRC:.cpp=.lo) +_OS = $(shell uname -s) LOKI_VERSION = 0.1.4 STATIC_LIB = ../lib/libloki.a -SHARED_LIB = ../lib/libloki.so.$(LOKI_VERSION) +ifeq ($(_OS), Darwin) + SHARED_LIB_INSTALL = + SHARED_LIB_FLAG = -dynamiclib + SHARED_LIB = ../lib/libloki.$(LOKI_VERSION).dylib +else + SHARED_LIB_FLAG = --shared + SHARED_LIB_INSTALL = -Wl,-soname=libloki.$(SHARED_LIB_EXTENSION).$(LOKI_VERSION) + SHARED_LIB = ../lib/libloki.so.$(LOKI_VERSION) +endif + + CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2 CPPFLAGS = -I../include -DNDEBUG @@ -13,7 +24,7 @@ $(STATIC_LIB): $(STATIC_OBJ) ar rs $(STATIC_LIB) $(STATIC_OBJ) $(SHARED_LIB): $(SHARED_OBJ) - g++ --shared -Wl,-soname=libloki.so.$(LOKI_VERSION) -o $(SHARED_LIB) $(SHARED_OBJ) + g++ $(SHARED_LIB_FLAG) $(SHARED_LIB_INSTALL) -o $(SHARED_LIB) $(SHARED_OBJ) %.lo : %.cpp $(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $< diff --git a/test/SingletonDll/Makefile b/test/SingletonDll/Makefile index 983e760..b4536f0 100755 --- a/test/SingletonDll/Makefile +++ b/test/SingletonDll/Makefile @@ -1,6 +1,15 @@ +_OS = $(shell uname -s) +ifeq ($(_OS), Darwin) + SHARED_LIB_FILENAME = dylib + SHARED_LIB_FLAG = -dynamiclib +else + SHARED_LIB_FILENAME = so + SHARED_LIB_FLAG = --shared +endif + BIN = client -LIB1 = libfoo.so -LIB2 = libsingletondll.so +LIB1 = libfoo.$(SHARED_LIB_FILENAME) +LIB2 = libsingletondll.$(SHARED_LIB_FILENAME) #mingw names #LIB1 = foo.dll #LIB2 = singletondll.dll @@ -16,10 +25,10 @@ $(BIN): $(LIB1) $(LIB2) $(CXX) $(CXXFLAGS) -L. $(LDFLAGS) $(CPPFLAGS) -o $(BIN) client.cpp $(LDLIBS) -lfoo -lsingletondll $(LIB1): foo.cpp - $(CXX) --shared $(CXXFLAGS) $(CPPFLAGS) -o $(LIB1) foo.cpp + $(CXX) $(SHARED_LIB_FLAG) $(CXXFLAGS) $(CPPFLAGS) -o $(LIB1) foo.cpp $(LIB2): singletondll.cpp - $(CXX) --shared $(CXXFLAGS) $(CPPFLAGS) -o $(LIB2) singletondll.cpp -L. -lfoo + $(CXX) $(SHARED_LIB_FLAG) $(CXXFLAGS) $(CPPFLAGS) -o $(LIB2) singletondll.cpp -L. -lfoo clean: - rm -f $(BIN) $(LIB1) $(LIB2) + rm -f $(BIN) client.o foo.o singleton.o $(LIB1) $(LIB2)