102 lines
2.9 KiB
Plaintext
102 lines
2.9 KiB
Plaintext
|
|
# ---------------------------------------------------------------------------
|
|
# Makefile for Open Asset Import Library (MinGW32-make)
|
|
# aramis_acg@users.sourceforge.net
|
|
# - just a quick'n'dirty one, could be buggy ...
|
|
#
|
|
# Usage: mingw32-make -f makefile.mingw <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)
|
|
|
|
# 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))
|
|
|
|
# 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/mingw/
|
|
|
|
# GCC compiler flags
|
|
CPPFLAGS=-Wall
|
|
|
|
# Setup environment for noboost build
|
|
ifeq ($(NOBOOST),1)
|
|
SINGLETHREADED = 1
|
|
INCLUDEFLAGS += -I/BoostWorkaround/
|
|
DEFINEFLAGS += -DASSIMP_BUILD_BOOST_WORKAROUND
|
|
# NAMESUFFIX += -noboost
|
|
else
|
|
# adjust this manually if your boost is stored elsewhere
|
|
INCLUDEFLAGS += -I"C:/Program Files/boost/boost_1_38"
|
|
#INCLUDEFLAGS += -I"$(BOOST_DIR)"
|
|
|
|
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 -s
|
|
DEFINEFLAGS += -DNDEBUG -D_NDEBUG
|
|
endif
|
|
|
|
# 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)
|
|
%.oc:%.c
|
|
$(CXX) -x c -g -c -ansi $(CPPFLAGS) $? -o $@
|
|
|
|
# target: clean
|
|
# usage : cleanup all object files, prepare for a rebuild
|
|
.PHONY: clean
|
|
clean:
|
|
-del *.o .\..\contrib\irrXML\*.o .\..\contrib\zlib\*.oc
|
|
|
|
# target: static
|
|
# usage : build a static library (*.a)
|
|
static: $(STATIC)
|
|
$(STATIC): $(OBJECTS) $(OBJECTSC)
|
|
ar rcs $@ $(OBJECTS) $(OBJECTSC)
|
|
|