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
This commit is contained in:
parent
085c66fef9
commit
5fff65df2e
2 changed files with 27 additions and 7 deletions
15
src/Makefile
15
src/Makefile
|
@ -1,11 +1,22 @@
|
||||||
SRC = $(wildcard *.cpp)
|
SRC = $(wildcard *.cpp)
|
||||||
STATIC_OBJ = $(SRC:.cpp=.o)
|
STATIC_OBJ = $(SRC:.cpp=.o)
|
||||||
SHARED_OBJ = $(SRC:.cpp=.lo)
|
SHARED_OBJ = $(SRC:.cpp=.lo)
|
||||||
|
_OS = $(shell uname -s)
|
||||||
|
|
||||||
LOKI_VERSION = 0.1.4
|
LOKI_VERSION = 0.1.4
|
||||||
|
|
||||||
STATIC_LIB = ../lib/libloki.a
|
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
|
CXXFLAGS = -Wall -Wold-style-cast -Wundef -Wsign-compare -Wconversion -Wpointer-arith -pedantic -O2
|
||||||
CPPFLAGS = -I../include -DNDEBUG
|
CPPFLAGS = -I../include -DNDEBUG
|
||||||
|
|
||||||
|
@ -13,7 +24,7 @@ $(STATIC_LIB): $(STATIC_OBJ)
|
||||||
ar rs $(STATIC_LIB) $(STATIC_OBJ)
|
ar rs $(STATIC_LIB) $(STATIC_OBJ)
|
||||||
|
|
||||||
$(SHARED_LIB): $(SHARED_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
|
%.lo : %.cpp
|
||||||
$(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $<
|
$(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $<
|
||||||
|
|
|
@ -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
|
BIN = client
|
||||||
LIB1 = libfoo.so
|
LIB1 = libfoo.$(SHARED_LIB_FILENAME)
|
||||||
LIB2 = libsingletondll.so
|
LIB2 = libsingletondll.$(SHARED_LIB_FILENAME)
|
||||||
#mingw names
|
#mingw names
|
||||||
#LIB1 = foo.dll
|
#LIB1 = foo.dll
|
||||||
#LIB2 = singletondll.dll
|
#LIB2 = singletondll.dll
|
||||||
|
@ -16,10 +25,10 @@ $(BIN): $(LIB1) $(LIB2)
|
||||||
$(CXX) $(CXXFLAGS) -L. $(LDFLAGS) $(CPPFLAGS) -o $(BIN) client.cpp $(LDLIBS) -lfoo -lsingletondll
|
$(CXX) $(CXXFLAGS) -L. $(LDFLAGS) $(CPPFLAGS) -o $(BIN) client.cpp $(LDLIBS) -lfoo -lsingletondll
|
||||||
|
|
||||||
$(LIB1): foo.cpp
|
$(LIB1): foo.cpp
|
||||||
$(CXX) --shared $(CXXFLAGS) $(CPPFLAGS) -o $(LIB1) foo.cpp
|
$(CXX) $(SHARED_LIB_FLAG) $(CXXFLAGS) $(CPPFLAGS) -o $(LIB1) foo.cpp
|
||||||
|
|
||||||
$(LIB2): singletondll.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:
|
clean:
|
||||||
rm -f $(BIN) $(LIB1) $(LIB2)
|
rm -f $(BIN) client.o foo.o singleton.o $(LIB1) $(LIB2)
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue