Makefile 1.6 KB

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