makefile.mingw 3.1 KB

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