Libgourou

Libgourou Git Source Tree

Root/Makefile

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

Archive Download this file