108 lines
2.9 KiB
Makefile
108 lines
2.9 KiB
Makefile
# Makefile for Open Asset Import Library (GNU-make)
|
|
# aramis_acg@users.sourceforge.net
|
|
|
|
#
|
|
# Usage: make <target> <macros>
|
|
|
|
# TARGETS:
|
|
# all Build a shared so from the whole library
|
|
# clean Cleanup object files, prepare for rebuild
|
|
# static Build a static library (*.a)
|
|
# install SDK will be installed to /usr/bin/assimp
|
|
|
|
# MACROS: (make clean before you change one)
|
|
# NOBOOST=1 Build against boost workaround
|
|
# SINGLETHREADED=1 Build single-threaded library
|
|
# DEBUG=1 Build debug build of library
|
|
|
|
# C++ object files
|
|
OBJECTS := $(patsubst %.cpp,%.o, $(wildcard *.cpp))
|
|
OBJECTS += $(patsubst %.cpp,%.o, $(wildcard extra/*.cpp))
|
|
OBJECTS += $(patsubst %.cpp,%.o, $(wildcard ./../contrib/irrXML/*.cpp))
|
|
|
|
# C object files
|
|
OBJECTSC := $(patsubst %.c,%.oc, $(wildcard ./../contrib/zlib/*.c))
|
|
OBJECTSC += $(patsubst %.c,%.oc, $(wildcard ./../contrib/ConvertUTF/*.c))
|
|
|
|
# Directory for install
|
|
INSTALLDIR = /usr/bin/assimp
|
|
|
|
# Include flags for gcc
|
|
INCLUDEFLAGS =
|
|
|
|
# Preprocessor defines for gcc
|
|
DEFINEFLAGS =
|
|
|
|
# Suffix for the output binary, represents build type
|
|
NAMESUFFIX =
|
|
|
|
# Output path for binaries
|
|
BINPATH = ../bin/gcc
|
|
INCPATH = ../include
|
|
|
|
# GCC compiler flags
|
|
CPPFLAGS=-Wall
|
|
|
|
# Setup environment for noboost build
|
|
ifeq ($(NOBOOST),1)
|
|
SINGLETHREADED = 1
|
|
INCLUDEFLAGS += -IBoostWorkaround/
|
|
DEFINEFLAGS += -DASSIMP_BUILD_BOOST_WORKAROUND
|
|
# NAMESUFFIX += -noboost
|
|
# else
|
|
# INCLUDEFLAGS += -I"C:/Program Files/boost/boost_1_35_0"
|
|
endif
|
|
|
|
# Setup environment for st build
|
|
ifeq ($(SINGLETHREADED),1)
|
|
DEFINEFLAGS += -DASSIMP_BUILD_SINGLETHREADED
|
|
# NAMESUFFIX += -st
|
|
endif
|
|
|
|
# Setup environment for debug build
|
|
ifeq ($(DEBUG),1)
|
|
DEFINEFLAGS += -D_DEBUG -DDEBUG
|
|
# NAMESUFFIX += -debug
|
|
else
|
|
CPPFLAGS += -O3
|
|
DEFINEFLAGS += -DNDEBUG -D_NDEBUG
|
|
endif
|
|
|
|
OUTPUT_NAME = dummy
|
|
|
|
# Output name of shared library
|
|
SHARED_TARGET = $(BINPATH)/libassimp$(NAMESUFFIX).so
|
|
|
|
# Output name of static library
|
|
STATIC = $(BINPATH)/libassimp$(NAMESUFFIX).a
|
|
|
|
# target: all
|
|
# usage : build a shared library (*.so)
|
|
all: $(SHARED_TARGET)
|
|
|
|
$(SHARED_TARGET): $(OBJECTS) $(OBJECTSC)
|
|
gcc -o $@ $(OBJECTS) $(OBJECTSC) -shared -lstdc++
|
|
%.o:%.cpp
|
|
$(CXX) -g -c $(CPPFLAGS) $? -o $@ $(INCLUDEFLAGS) $(DEFINEFLAGS) -fPIC
|
|
%.oc:%.c
|
|
$(CXX) -x c -g -c -ansi $(CPPFLAGS) $? -o $@ -fPIC
|
|
|
|
# target: clean
|
|
# usage : cleanup all object files, prepare for a rebuild
|
|
.PHONY: clean
|
|
clean:
|
|
-rm -f $(OBJECTS) $(OBJECTSC) $(TARGET)
|
|
|
|
# target: static
|
|
# usage : build a static library (*.a)
|
|
static: $(STATIC)
|
|
$(STATIC): $(OBJECTS) $(OBJECTSC)
|
|
ar rcs $@ $(OBJECTS) $(OBJECTSC)
|
|
|
|
install:
|
|
mkdir -p $(INSTALLDIR)
|
|
mkdir -p $(INSTALLDIR)/include
|
|
mkdir -p $(INSTALLDIR)/lib
|
|
cp $(BINPATH)/libassimp$(NAMESUFFIX).* $(INSTALLDIR)/lib
|
|
cp $(INCPATH)/* $(INSTALLDIR)/include
|