makefile 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. ### USE OF THIS MAKEFILE IS NOT RECOMMENDED.
  2. ### It is no longer maintained. Use CMAKE instead.
  3. # Makefile for Open Asset Import Library (GNU-make)
  4. # [email protected]
  5. #
  6. # Usage: make <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. # install SDK will be installed to /usr/bin/assimp
  12. # MACROS: (make clean before you change one)
  13. # NOBOOST=1 Build against boost workaround
  14. # SINGLETHREADED=1 Build single-threaded library
  15. # DEBUG=1 Build debug build of library
  16. # C++ object files
  17. OBJECTS := $(patsubst %.cpp,%.o, $(wildcard *.cpp))
  18. OBJECTS += $(patsubst %.cpp,%.o, $(wildcard extra/*.cpp))
  19. OBJECTS += $(patsubst %.cpp,%.o, $(wildcard ./../contrib/irrXML/*.cpp))
  20. # C object files
  21. OBJECTSC := $(patsubst %.c,%.oc, $(wildcard ./../contrib/zlib/*.c))
  22. OBJECTSC += $(patsubst %.c,%.oc, $(wildcard ./../contrib/ConvertUTF/*.c))
  23. OBJECTSC += $(patsubst %.c,%.oc, $(wildcard ./../contrib/unzip/*.c))
  24. # Directory for install
  25. INSTALLDIR = /usr/bin/assimp
  26. # Include flags for gcc
  27. INCLUDEFLAGS =
  28. # Preprocessor defines for gcc
  29. DEFINEFLAGS =
  30. # Suffix for the output binary, represents build type
  31. NAMESUFFIX =
  32. # Output path for binaries
  33. BINPATH = ../bin/gcc
  34. INCPATH = ../include
  35. # GCC compiler flags
  36. CPPFLAGS=-Wall
  37. # Setup environment for noboost build
  38. ifeq ($(NOBOOST),1)
  39. SINGLETHREADED = 1
  40. INCLUDEFLAGS += -IBoostWorkaround/
  41. DEFINEFLAGS += -DASSIMP_BUILD_BOOST_WORKAROUND
  42. # NAMESUFFIX += -noboost
  43. # else
  44. # INCLUDEFLAGS += -I"C:/Program Files/boost/boost_1_35_0"
  45. endif
  46. # Setup environment for st build
  47. ifeq ($(SINGLETHREADED),1)
  48. DEFINEFLAGS += -DASSIMP_BUILD_SINGLETHREADED
  49. # NAMESUFFIX += -st
  50. endif
  51. # Setup environment for debug build
  52. ifeq ($(DEBUG),1)
  53. DEFINEFLAGS += -D_DEBUG -DDEBUG
  54. # NAMESUFFIX += -debug
  55. else
  56. CPPFLAGS += -O3
  57. DEFINEFLAGS += -DNDEBUG -D_NDEBUG
  58. endif
  59. OUTPUT_NAME = dummy
  60. # Output name of shared library
  61. SHARED_TARGET = $(BINPATH)/libassimp$(NAMESUFFIX).so
  62. # Output name of static library
  63. STATIC = $(BINPATH)/libassimp$(NAMESUFFIX).a
  64. # target: all
  65. # usage : build a shared library (*.so)
  66. all: $(SHARED_TARGET)
  67. $(SHARED_TARGET): $(OBJECTS) $(OBJECTSC)
  68. gcc -o $@ $(OBJECTS) $(OBJECTSC) -shared -lstdc++
  69. %.o:%.cpp
  70. $(CXX) -g -c $(CPPFLAGS) $? -o $@ $(INCLUDEFLAGS) $(DEFINEFLAGS) -fPIC
  71. %.oc:%.c
  72. $(CXX) -x c -g -c -ansi $(CPPFLAGS) $? -o $@ -fPIC
  73. # target: clean
  74. # usage : cleanup all object files, prepare for a rebuild
  75. .PHONY: clean
  76. clean:
  77. -rm -f $(OBJECTS) $(OBJECTSC) $(TARGET)
  78. # target: static
  79. # usage : build a static library (*.a)
  80. static: $(STATIC)
  81. $(STATIC): $(OBJECTS) $(OBJECTSC)
  82. ar rcs $@ $(OBJECTS) $(OBJECTSC)
  83. install:
  84. mkdir -p $(INSTALLDIR)
  85. mkdir -p $(INSTALLDIR)/include
  86. mkdir -p $(INSTALLDIR)/lib
  87. cp $(BINPATH)/libassimp$(NAMESUFFIX).* $(INSTALLDIR)/lib
  88. cp $(INCPATH)/* $(INSTALLDIR)/include