summaryrefslogtreecommitdiffstats
path: root/src/3rdparty/assimp/code/makefile.mingw
blob: 711d57f57ea18f8be9dbce39d569b8ad063f00d4 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
### USE OF THIS MAKEFILE IS NOT RECOMMENDED.
### It is no longer maintained. Use CMAKE instead.

# ---------------------------------------------------------------------------
# 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))
OBJECTSC  += $(patsubst %.c,%.oc,   $(wildcard ./../contrib/unzip/*.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
	CPPFLAGS      += -g
#	NAMESUFFIX    += -debug
else
	CPPFLAGS      += -O2 -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) -c  $(CPPFLAGS) $? -o $@ $(INCLUDEFLAGS) $(DEFINEFLAGS)
%.oc:%.c
	$(CXX) -x c -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 .\..\contrib\unzip\*.oc .\..\contrib\ConvertUTF\*.oc

# target: static
# usage : build a static library (*.a)
static:    $(STATIC) 
$(STATIC):    $(OBJECTS) $(OBJECTSC)
	ar rcs $@ $(OBJECTS) $(OBJECTSC)