Makefile 1.9 KB

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