AR ?= $(CROSS)ar␊ |
CXX ?= $(CROSS)g++␊ |
␊ |
ifeq ($(PREFIX),)␊ |
PREFIX := /usr/local␊ |
endif␊ |
␊ |
UPDFPARSERLIB = ./lib/updfparser/libupdfparser.a␊ |
␊ |
CXXFLAGS=-Wall -fPIC -I./include -I./lib/pugixml/src/ -I./lib/updfparser/include␊ |
CXXFLAGS += -Wall -fPIC -I./include -I./lib/pugixml/src/ -I./lib/updfparser/include␊ |
LDFLAGS = $(UPDFPARSERLIB)␊ |
␊ |
VERSION := $(shell cat include/libgourou.h |grep LIBGOUROU_VERSION|cut -d '"' -f2)␊ |
␊ |
BUILD_STATIC ?= 0␊ |
BUILD_SHARED ?= 1␊ |
BUILD_UTILS ?= 1␊ |
␊ |
TARGETS =␊ |
TARGET_BINARIES =␊ |
ifneq ($(BUILD_STATIC), 0)␊ |
TARGETS += libgourou.a␊ |
TARGET_BINARIES += libgourou.a␊ |
endif␊ |
ifneq ($(BUILD_SHARED), 0)␊ |
TARGETS += libgourou.so␊ |
TARGET_BINARIES += libgourou.so libgourou.so.$(VERSION)␊ |
endif␊ |
ifneq ($(BUILD_UTILS), 0)␊ |
TARGETS += build_utils␊ |
|
SOURCES = src/libgourou.cpp src/user.cpp src/device.cpp src/fulfillment_item.cpp src/loan_token.cpp src/bytearray.cpp src/pugixml.cpp␊ |
OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.$(OBJEXT)))␊ |
␊ |
all: lib obj $(TARGETS)␊ |
all: version lib obj $(TARGETS)␊ |
␊ |
version:␊ |
␉@echo "Building libgourou $(VERSION)"␊ |
␊ |
lib:␊ |
␉mkdir lib␊ |
|
␉$(AR) crs $@ obj/*.o $(UPDFPARSERLIB)␊ |
␊ |
libgourou.so: $(OBJECTS) $(UPDFPARSERLIB)␊ |
␉$(CXX) obj/*.o $(LDFLAGS) -o $@ -shared␊ |
␉$(CXX) obj/*.o -Wl,-soname,$@.$(VERSION) $(LDFLAGS) -o $@.$(VERSION) -shared␊ |
␉rm -f $@␊ |
␉ln -s $@.$(VERSION) $@␊ |
␊ |
build_utils:␊ |
␉make -C utils ROOT=$(PWD) CXX=$(CXX) AR=$(AR) DEBUG=$(DEBUG) STATIC_UTILS=$(STATIC_UTILS)␊ |
␉make -C utils ROOT=$(PWD) CXX=$(CXX) AR=$(AR) DEBUG=$(DEBUG) STATIC_UTILS=$(STATIC_UTILS) DEST_DIR=$(DEST_DIR) PREFIX=$(PREFIX)␊ |
␊ |
install:␊ |
␉install -d $(DESTDIR)$(PREFIX)/lib/␊ |
# Use cp to preserver symlinks␊ |
␉cp --no-dereference $(TARGET_BINARIES) $(DESTDIR)$(PREFIX)/lib/␊ |
␉make -C utils ROOT=$(PWD) CXX=$(CXX) AR=$(AR) DEBUG=$(DEBUG) STATIC_UTILS=$(STATIC_UTILS) DEST_DIR=$(DEST_DIR) PREFIX=$(PREFIX) install␊ |
␊ |
uninstall:␊ |
␉cd $(DESTDIR)$(PREFIX)/lib/␊ |
␉rm -f $(TARGET_BINARIES) libgourou.so.$(VERSION)␊ |
␉cd -␊ |
␊ |
clean:␊ |
␉rm -rf libgourou.a libgourou.so obj␊ |
␉rm -rf libgourou.a libgourou.so libgourou.so.$(VERSION)* obj␊ |
␉make -C utils clean␊ |
␊ |
ultraclean: clean␊ |