2006-03-02 21:19:41 +00:00
|
|
|
SRC = $(wildcard *.cpp)
|
|
|
|
STATIC_OBJ = $(SRC:.cpp=.o)
|
|
|
|
SHARED_OBJ = $(SRC:.cpp=.lo)
|
|
|
|
|
2006-04-04 23:15:10 +00:00
|
|
|
CPPFLAGS = -I../include -DNDEBUG
|
2006-03-02 21:19:41 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
STATIC_LIB = libloki.a
|
2006-04-04 23:15:10 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
ifeq ($(OS), Darwin)
|
|
|
|
SHARED_LIB_BASE = libloki.dylib
|
|
|
|
SHARED_LIB_VERSIONED = libloki.$(VERSION).dylib
|
|
|
|
LDFLAGS = -dynamiclib -single_module -install_name $(SHARED_LIB_VERSIONED) -fPIC
|
|
|
|
LDLIBS = -lpthread
|
|
|
|
RESULT_DIR = ../lib/
|
|
|
|
else
|
|
|
|
ifeq ($(OS), Linux)
|
|
|
|
SHARED_LIB_BASE = libloki.so
|
|
|
|
SHARED_LIB_VERSIONED = libloki.so.$(VERSION)
|
|
|
|
LDFLAGS = --shared -Wl,-soname=$(SHARED_LIB_VERSIONED) -fPIC
|
|
|
|
LDLIBS = -lpthread
|
|
|
|
RESULT_DIR = ../lib/
|
2006-03-21 21:01:18 +00:00
|
|
|
else
|
2006-04-18 07:29:41 +00:00
|
|
|
SHARED_LIB_BASE = libloki.dll
|
|
|
|
LDFLAGS = --shared
|
|
|
|
LDLIBS =
|
|
|
|
RESULT_DIR = ..\lib\\
|
|
|
|
endif
|
2006-03-21 21:01:18 +00:00
|
|
|
endif
|
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
.PHONY: all build-static build-shared clean distclean
|
|
|
|
all: build-static build-shared
|
|
|
|
build-static: $(RESULT_DIR)$(STATIC_LIB)
|
|
|
|
build-shared: $(RESULT_DIR)$(SHARED_LIB_BASE)
|
2005-09-24 23:08:48 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
clean:
|
|
|
|
$(RM) $(STATIC_OBJ)
|
|
|
|
ifneq ($(OS), Windows)
|
|
|
|
$(RM) $(SHARED_OBJ)
|
|
|
|
endif
|
2006-03-02 21:19:41 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
distclean: clean
|
|
|
|
$(RM) $(RESULT_DIR)$(STATIC_LIB)
|
|
|
|
$(RM) $(RESULT_DIR)$(SHARED_LIB_BASE)
|
|
|
|
ifneq ($(OS),Windows)
|
|
|
|
$(RM) $(RESULT_DIR)$(SHARED_LIB_VERSIONED)
|
2006-03-02 21:19:41 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
INSTALL = install
|
|
|
|
INSTALL_DATA = $(INSTALL) -m 644
|
2006-03-02 21:19:41 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
.PHONY: install install-static install-shared
|
|
|
|
install: install-static install-shared
|
2006-03-02 21:19:41 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
install-static: $(RESULT_DIR)$(STATIC_LIB)
|
|
|
|
mkdir -p $(prefix)/lib
|
|
|
|
$(INSTALL_DATA) $(RESULT_DIR)$(STATIC_LIB) $(prefix)/lib
|
2005-09-24 23:08:48 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
install-shared: $(RESULT_DIR)$(SHARED_LIB_BASE)
|
|
|
|
mkdir -p $(prefix)/lib
|
|
|
|
$(INSTALL_DATA) $(RESULT_DIR)$(SHARED_LIB_BASE) $(prefix)/lib
|
|
|
|
$(INSTALL_DATA) $(RESULT_DIR)$(SHARED_LIB_VERSIONED) $(prefix)/lib
|
2005-09-24 23:08:48 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
$(RESULT_DIR)$(SHARED_LIB_BASE): $(RESULT_DIR)$(SHARED_LIB_VERSIONED)
|
|
|
|
ln -sf $^ $@
|
|
|
|
|
|
|
|
%.lo : %.cpp
|
|
|
|
$(CXX) -c $(CXXFLAGS) -fPIC $(CPPFLAGS) -o $@ $<
|
2006-01-11 00:02:57 +00:00
|
|
|
|
2006-04-18 07:29:41 +00:00
|
|
|
$(RESULT_DIR)$(SHARED_LIB_VERSIONED): $(SHARED_OBJ)
|
|
|
|
else
|
|
|
|
$(RESULT_DIR)$(SHARED_LIB_BASE): $(STATIC_OBJ)
|
|
|
|
endif
|
|
|
|
$(CXX) $(LDFLAGS) -o $@ $^ $(LDLIBS)
|
|
|
|
|
|
|
|
$(RESULT_DIR)$(STATIC_LIB): $(STATIC_OBJ)
|
|
|
|
$(AR) $(ARFLAGS) $@ $^
|