makefile.mingw 2.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. # ---------------------------------------------------------------------------
  2. # Makefile for Open Asset Import Library (MinGW32-make)
  3. # [email protected]
  4. # - just a quick'n'dirty one, could be buggy ...
  5. #
  6. # Usage: mingw32-make -f makefile.mingw <target> <macros>
  7. # TARGETS:
  8. # all Build a shared so from the whole library
  9. # clean Cleanup object files, prepare for rebuild
  10. # static Build a static library (*.a)
  11. # MACROS: (make clean before you change one)
  12. # NOBOOST=1 Build against boost workaround
  13. # SINGLETHREADED=1 Build single-threaded library
  14. # DEBUG=1 Build debug build of library
  15. #
  16. # ---------------------------------------------------------------------------
  17. # C++ object files
  18. OBJECTS := $(patsubst %.cpp,%.o, $(wildcard *.cpp))
  19. OBJECTS += $(patsubst %.cpp,%.o, $(wildcard extra/*.cpp))
  20. OBJECTS += $(patsubst %.cpp,%.o, $(wildcard ./../contrib/irrXML/*.cpp))
  21. # C object files (mainly from zlib)
  22. OBJECTSC := $(patsubst %.c,%.oc, $(wildcard ./../contrib/zlib/*.c))
  23. # Include flags for gcc
  24. INCLUDEFLAGS =
  25. # Preprocessor defines for gcc
  26. DEFINEFLAGS =
  27. # Suffix for the output binary, represents build type
  28. NAMESUFFIX =
  29. # Output path for binaries
  30. BINPATH = ../bin/mingw/
  31. # GCC compiler flags
  32. CPPFLAGS=-Wall
  33. # Setup environment for noboost build
  34. ifeq ($(NOBOOST),1)
  35. SINGLETHREADED = 1
  36. INCLUDEFLAGS += -I../include/BoostWorkaround/
  37. DEFINEFLAGS += -DASSIMP_BUILD_BOOST_WORKAROUND
  38. # NAMESUFFIX += -noboost
  39. else
  40. # adjust this manually if your boost is stored elsewhere
  41. INCLUDEFLAGS += -I"C:/Program Files/boost/boost_1_38"
  42. endif
  43. # Setup environment for st build
  44. ifeq ($(SINGLETHREADED),1)
  45. DEFINEFLAGS += -DASSIMP_BUILD_SINGLETHREADED
  46. # NAMESUFFIX += -st
  47. endif
  48. # Setup environment for debug build
  49. ifeq ($(DEBUG),1)
  50. DEFINEFLAGS += -D_DEBUG -DDEBUG
  51. # NAMESUFFIX += -debug
  52. else
  53. CPPFLAGS += -o3 -s
  54. DEFINEFLAGS += -DNDEBUG -D_NDEBUG
  55. endif
  56. # Output name of shared library
  57. SHARED_TARGET = $(BINPATH)/libassimp$(NAMESUFFIX).so
  58. # Output name of static library
  59. STATIC = $(BINPATH)/libassimp$(NAMESUFFIX).a
  60. # target: all
  61. # usage : build a shared library (*.so)
  62. all: $(SHARED_TARGET)
  63. $(SHARED_TARGET): $(OBJECTS) $(OBJECTSC)
  64. gcc -o $@ $(OBJECTS) $(OBJECTSC) -shared -lstdc++
  65. %.o:%.cpp
  66. $(CXX) -g -c $(CPPFLAGS) $? -o $@ $(INCLUDEFLAGS) $(DEFINEFLAGS)
  67. %.oc:%.c
  68. $(CXX) -x c -g -c -ansi $(CPPFLAGS) $? -o $@
  69. # target: clean
  70. # usage : cleanup all object files, prepare for a rebuild
  71. .PHONY: clean
  72. clean:
  73. -del *.o .\..\contrib\irrXML\*.o .\..\contrib\zlib\*.oc
  74. # target: static
  75. # usage : build a static library (*.a)
  76. static: $(STATIC)
  77. $(STATIC): $(OBJECTS) $(OBJECTSC)
  78. ar rcs $@ $(OBJECTS) $(OBJECTSC)