Makefile 1.5 KB

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