PREFIX ?= /usr/local LIBDIR ?= /lib INCDIR ?= /include AR ?= $(CROSS)ar CXX ?= $(CROSS)g++ UPDFPARSERLIB = ./lib/updfparser/libupdfparser.a CXXFLAGS += -Wall -fPIC -I./include -I./usr/include/pugixml -I./lib/updfparser/include LDFLAGS = -lpugixml VERSION := $(shell cat include/libgourou.h |grep LIBGOUROU_VERSION|cut -d '"' -f2) BUILD_STATIC ?= 0 BUILD_SHARED ?= 1 BUILD_UTILS ?= 1 TARGETS = TARGET_LIBRARIES = ifneq ($(STATIC_UTILS),) BUILD_STATIC=1 endif ifneq ($(BUILD_STATIC), 0) TARGETS += libgourou.a TARGET_LIBRARIES += libgourou.a STATIC_UTILS=1 endif ifneq ($(BUILD_SHARED), 0) TARGETS += libgourou.so TARGET_LIBRARIES += libgourou.so libgourou.so.$(VERSION) endif ifneq ($(BUILD_UTILS), 0) TARGETS += build_utils endif ifneq ($(DEBUG),) CXXFLAGS += -ggdb -O0 -DDEBUG else CXXFLAGS += -O2 endif ifneq ($(STATIC_NONCE),) CXXFLAGS += -DSTATIC_NONCE=1 endif SRCDIR := src BUILDDIR := obj SRCEXT := cpp OBJEXT := o SOURCES = src/libgourou.cpp src/user.cpp src/device.cpp src/fulfillment_item.cpp src/loan_token.cpp src/bytearray.cpp OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.$(OBJEXT))) all: version lib obj $(TARGETS) version: @echo "Building libgourou $(VERSION)" lib: mkdir lib ./scripts/setup.sh update_lib: ./scripts/update_lib.sh obj: mkdir obj $(BUILDDIR)/%.$(OBJEXT): $(SRCDIR)/%.$(SRCEXT) $(CXX) $(CXXFLAGS) -c $^ -o $@ libgourou: $(TARGET_LIBRARIES) libgourou.a: $(OBJECTS) $(UPDFPARSERLIB) $(AR) rcs --thin $@ $^ libgourou.so.$(VERSION): $(OBJECTS) $(UPDFPARSERLIB) $(CXX) $^ -Wl,-soname,$@ $(LDFLAGS) -o $@ -shared libgourou.so: libgourou.so.$(VERSION) ln -f -s $^ $@ build_utils: $(TARGET_LIBRARIES) $(MAKE) -C utils ROOT=$(PWD) CXX=$(CXX) AR=$(AR) DEBUG=$(DEBUG) STATIC_UTILS=$(STATIC_UTILS) DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) install: $(TARGET_LIBRARIES) install -d $(DESTDIR)$(PREFIX)$(LIBDIR) # Use cp to preserver symlinks cp --no-dereference $(TARGET_LIBRARIES) $(DESTDIR)$(PREFIX)$(LIBDIR) $(MAKE) -C utils ROOT=$(PWD) CXX=$(CXX) AR=$(AR) DEBUG=$(DEBUG) STATIC_UTILS=$(STATIC_UTILS) DESTDIR=$(DESTDIR) PREFIX=$(PREFIX) install uninstall: cd $(DESTDIR)$(PREFIX)/$(LIBDIR) rm -f $(TARGET_LIBRARIES) libgourou.so.$(VERSION) cd - install_headers: install -d $(DESTDIR)$(PREFIX)/$(INCDIR)/libgourou cp --no-dereference include/*.h $(DESTDIR)$(PREFIX)/$(INCDIR)/libgourou uninstall_headers: rm -rf $(DESTDIR)$(PREFIX)/$(INCDIR)/libgourou clean: rm -rf libgourou.a libgourou.so libgourou.so.$(VERSION)* obj $(MAKE) -C utils clean ultraclean: clean rm -rf lib $(MAKE) -C utils ultraclean