Libgourou

Libgourou Git Source Tree

Root/Makefile

1LIBDIR ?= /usr/lib
2INCDIR ?= /usr/include
3
4AR ?= $(CROSS)ar
5CXX ?= $(CROSS)g++
6
7ifeq ($(PREFIX),)
8 PREFIX := /usr/local
9endif
10
11UPDFPARSERLIB = ./lib/updfparser/libupdfparser.a
12
13CXXFLAGS += -Wall -fPIC -I./include -I./usr/include/pugixml -I./lib/updfparser/include
14LDFLAGS = -lpugixml
15
16VERSION := $(shell cat include/libgourou.h |grep LIBGOUROU_VERSION|cut -d '"' -f2)
17
18BUILD_STATIC ?= 0
19BUILD_SHARED ?= 1
20BUILD_UTILS ?= 1
21
22TARGETS =
23TARGET_LIBRARIES =
24ifneq ($(STATIC_UTILS),)
25 BUILD_STATIC=1
26endif
27ifneq ($(BUILD_STATIC), 0)
28 TARGETS += libgourou.a
29 TARGET_LIBRARIES += libgourou.a
30 STATIC_UTILS=1
31endif
32ifneq ($(BUILD_SHARED), 0)
33 TARGETS += libgourou.so
34 TARGET_LIBRARIES += libgourou.so libgourou.so.$(VERSION)
35endif
36ifneq ($(BUILD_UTILS), 0)
37 TARGETS += build_utils
38endif
39
40
41ifneq ($(DEBUG),)
42CXXFLAGS += -ggdb -O0 -DDEBUG
43else
44CXXFLAGS += -O2
45endif
46
47ifneq ($(STATIC_NONCE),)
48CXXFLAGS += -DSTATIC_NONCE=1
49endif
50
51SRCDIR := src
52BUILDDIR := obj
53SRCEXT := cpp
54OBJEXT := o
55
56SOURCES = src/libgourou.cpp src/user.cpp src/device.cpp src/fulfillment_item.cpp src/loan_token.cpp src/bytearray.cpp
57OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.$(OBJEXT)))
58
59all: version lib obj $(TARGETS)
60
61version:
62@echo "Building libgourou $(VERSION)"
63
64lib:
65mkdir lib
66./scripts/setup.sh
67
68update_lib:
69./scripts/update_lib.sh
70
71obj:
72mkdir obj
73
74$(BUILDDIR)/%.$(OBJEXT): $(SRCDIR)/%.$(SRCEXT)
75$(CXX) $(CXXFLAGS) -c $^ -o $@
76
77libgourou: $(TARGET_LIBRARIES)
78
79libgourou.a: $(OBJECTS) $(UPDFPARSERLIB)
80$(AR) rcs --thin $@ $^
81
82libgourou.so.$(VERSION): $(OBJECTS) $(UPDFPARSERLIB)
83$(CXX) $^ -Wl,-soname,$@ $(LDFLAGS) -o $@ -shared
84
85libgourou.so: libgourou.so.$(VERSION)
86ln -f -s $^ $@
87
88build_utils: $(TARGET_LIBRARIES)
89$(MAKE) -C utils ROOT=$(PWD) CXX=$(CXX) AR=$(AR) DEBUG=$(DEBUG) STATIC_UTILS=$(STATIC_UTILS) DEST_DIR=$(DEST_DIR) PREFIX=$(PREFIX)
90
91install: $(TARGET_LIBRARIES)
92install -d $(DESTDIR)$(PREFIX)$(LIBDIR)
93# Use cp to preserver symlinks
94cp --no-dereference $(TARGET_LIBRARIES) $(DESTDIR)$(PREFIX)$(LIBDIR)
95$(MAKE) -C utils ROOT=$(PWD) CXX=$(CXX) AR=$(AR) DEBUG=$(DEBUG) STATIC_UTILS=$(STATIC_UTILS) DEST_DIR=$(DEST_DIR) PREFIX=$(PREFIX) install
96
97uninstall:
98cd $(DESTDIR)$(PREFIX)/$(LIBDIR)
99rm -f $(TARGET_LIBRARIES) libgourou.so.$(VERSION)
100cd -
101
102install_headers:
103install -d $(DESTDIR)$(PREFIX)/$(INCDIR)/libgourou
104cp --no-dereference include/*.h $(DESTDIR)$(PREFIX)/$(INCDIR)/libgourou
105
106uninstall_headers:
107rm -rf $(DESTDIR)$(PREFIX)/$(INCDIR)/libgourou
108
109clean:
110rm -rf libgourou.a libgourou.so libgourou.so.$(VERSION)* obj
111$(MAKE) -C utils clean
112
113ultraclean: clean
114rm -rf lib
115$(MAKE) -C utils ultraclean

Archive Download this file