Makefile 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  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 -j
  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. .PHONY: examples
  24. .PHONY: extras
  25. debug: lib
  26. lib: obj lib/libigl.a
  27. examples:
  28. make -C examples
  29. extras:
  30. for p in $(EXTRA_DIRS); \
  31. do \
  32. echo "cd $$p" ; \
  33. $(MAKE) -C $$p ; \
  34. done
  35. #############################################################################
  36. # SOURCE
  37. #############################################################################
  38. CPP_FILES=$(wildcard include/igl/*.cpp)
  39. OBJ_FILES=$(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o)))
  40. # include igl headers
  41. INC+=-Iinclude/
  42. #############################################################################
  43. # DEPENDENCIES
  44. #############################################################################
  45. # Eigen dependency
  46. EIGEN3_INC=-I/opt/local/include/eigen3 -I/opt/local/include/eigen3/unsupported
  47. INC+=$(EIGEN3_INC)
  48. # AntTweakBar dependency
  49. ANTTWEAKBAR_INC=-I/opt/local/include
  50. INC+=$(ANTTWEAKBAR_INC)
  51. ## OpenGL dependency
  52. #LIB+=-framework OpenGL
  53. #LIB+=-framework GLUT
  54. #LIB+=-framework AppKit
  55. obj:
  56. mkdir -p obj
  57. lib/libigl.a: $(OBJ_FILES)
  58. rm -f $@
  59. ar cqs $@ $(OBJ_FILES)
  60. obj/%.o: include/igl/%.cpp include/igl/%.h
  61. g++ $(CFLAGS) $(AFLAGS) -c -o $@ $< $(INC)
  62. clean:
  63. rm -f obj/*.o
  64. rm -f lib/libigl.a
  65. make -C examples clean
  66. for p in $(EXTRA_DIRS); \
  67. do \
  68. echo "cd $$p" ; \
  69. $(MAKE) -C $$p clean; \
  70. done