AR ?= $(CROSS)ar CXX ?= $(CROSS)g++ CXXFLAGS=-Wall -fPIC -I./include LDFLAGS= BUILD_STATIC ?= 0 BUILD_SHARED ?= 1 TARGETS = ifneq ($(BUILD_STATIC), 0) TARGETS += libupdfparser.a endif ifneq ($(BUILD_SHARED), 0) TARGETS += libupdfparser.so endif ifneq ($(DEBUG),) CXXFLAGS += -ggdb -O0 else CXXFLAGS += -O2 endif SRCDIR := src INCDIR := inc BUILDDIR := obj TARGETDIR := bin SRCEXT := cpp OBJEXT := o SOURCES = src/uPDFParser.cpp src/uPDFTypes.cpp OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.$(SRCEXT)=.$(OBJEXT))) all: obj $(TARGETS) obj: mkdir obj $(BUILDDIR)/%.$(OBJEXT): $(SRCDIR)/%.$(SRCEXT) $(CXX) $(CXXFLAGS) -c $^ -o $@ libupdfparser.a: $(OBJECTS) $(AR) crs $@ obj/*.o libupdfparser.so: $(OBJECTS) $(CXX) obj/*.o $(LDFLAGS) -o $@ -shared test: tests/test.cpp libupdfparser.a g++ -ggdb -O0 $^ -o $@ -Iinclude libupdfparser.a clean: rm -rf libupdfparser.so libupdfparser.a obj test