forked from soutade/libgourou
		
	
		
			
				
	
	
		
			113 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
			
		
		
	
	
			113 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Makefile
		
	
	
	
	
	
| 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
 |