Makefile 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. .PHONY: all
  2. all: lib extras examples
  3. #GG=g++
  4. GG=clang++
  5. #GG=/usr/bin/g++ 17s
  6. #GG=/usr/bin/clang++ 14s
  7. #GG=g++-mp-4.3 15.5s
  8. #GG=g++-mp-4.7 19.9s
  9. # Shared flags etc.
  10. include Makefile.conf
  11. $(info Hello, $(IGL_USERNAME)!)
  12. # optimized default settings
  13. all: LFLAGS +=
  14. OPTFLAGS+=-O3 -DNDEBUG $(OPENMP) $(SSE)
  15. #debug: OPTFLAGS= -g -Wall -Werror
  16. debug: OPTFLAGS= -g -Wall
  17. CFLAGS += $(OPTFLAGS)
  18. EXTRA_DIRS=
  19. ifeq ($(IGL_WITH_TETGEN),1)
  20. # append tetgen extra dir
  21. EXTRA_DIRS+=include/igl/tetgen
  22. endif
  23. ifeq ($(IGL_WITH_MATLAB),1)
  24. # append matlab extra dir
  25. EXTRA_DIRS+=include/igl/matlab
  26. endif
  27. ifeq ($(IGL_WITH_MOSEK),1)
  28. # append mosek extra dir
  29. EXTRA_DIRS+=include/igl/mosek
  30. endif
  31. ifeq ($(IGL_WITH_PNG),1)
  32. # append mosek extra dir
  33. EXTRA_DIRS+=include/igl/png
  34. endif
  35. .PHONY: examples
  36. .PHONY: extras
  37. debug: lib
  38. lib: lib/libigl.a
  39. examples: lib extras
  40. make -C examples
  41. extras:
  42. for p in $(EXTRA_DIRS); \
  43. do \
  44. echo "cd $$p" ; \
  45. $(MAKE) -C $$p ; \
  46. done
  47. #############################################################################
  48. # SOURCE
  49. #############################################################################
  50. CPP_FILES=$(wildcard include/igl/*.cpp)
  51. OBJ_FILES=$(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o)))
  52. # include igl headers
  53. INC+=-Iinclude/
  54. #############################################################################
  55. # DEPENDENCIES
  56. #############################################################################
  57. INC+=$(OPENGL_INC)
  58. # Eigen dependency
  59. EIGEN3_INC=-I$(DEFAULT_PREFIX)/include/eigen3 -I$(DEFAULT_PREFIX)/include/eigen3/unsupported
  60. INC+=$(EIGEN3_INC)
  61. # AntTweakBar dependency
  62. #ANTTWEAKBAR_INC=-I$(DEFAULT_PREFIX)/include
  63. ANTTWEAKBAR_INC=-Iexternal/AntTweakBar/include
  64. INC+=$(ANTTWEAKBAR_INC)
  65. ## OpenGL dependency
  66. #LIB+=-framework OpenGL
  67. #LIB+=-framework GLUT
  68. #LIB+=-framework AppKit
  69. obj:
  70. mkdir -p obj
  71. lib/libigl.a: $(OBJ_FILES)
  72. mkdir -p lib
  73. rm -f $@
  74. ar cqs $@ $(OBJ_FILES)
  75. obj/%.o: include/igl/%.cpp include/igl/%.h
  76. $(GG) $(CFLAGS) $(AFLAGS) -c -o $@ $< $(INC)
  77. clean:
  78. rm -f obj/*.o
  79. rm -f lib/libigl.a
  80. make -C examples clean
  81. for p in $(EXTRA_DIRS); \
  82. do \
  83. echo "cd $$p" ; \
  84. $(MAKE) -C $$p clean; \
  85. done