Makefile 1.9 KB

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