Makefile 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283
  1. .PHONY: all
  2. # Shared flags etc.
  3. include ../../build/Makefile.conf
  4. all: obj example
  5. .PHONY: example
  6. LIBIGL=../../
  7. LIBIGL_INC=-I$(LIBIGL)/include
  8. LIBIGL_LIB=-L$(LIBIGL)/lib -ligl -liglembree -liglcgal -ligltetgen -liglbbw -liglmosek
  9. EIGEN3_INC=-I/opt/local/include/eigen3 -I/opt/local/include/eigen3/unsupported
  10. ANTTWEAKBAR_INC=-I$(LIBIGL)/external/AntTweakBar/include
  11. ANTTWEAKBAR_LIB=-L$(LIBIGL)/external/AntTweakBar/lib -lAntTweakBar -framework AppKit
  12. TETGEN=$(LIBIGL)/external/tetgen
  13. TETGEN_LIB=-L$(TETGEN) -ltet
  14. TETGEN_INC=-I$(TETGEN)
  15. EMBREE=$(LIBIGL)/external/embree
  16. EMBREE_INC=-I$(EMBREE)/ -I$(EMBREE)/embree
  17. EMBREE_LIB=-L$(EMBREE)/build -lembree -lsys
  18. CARBON_LIB=-framework Carbon
  19. # Use free glut for mouse scrolling
  20. #FREE_GLUT=/opt/local/
  21. #FREE_GLUT_INC=-I$(FREE_GLUT)/include
  22. #FREE_GLUT_LIB=-L$(FREE_GLUT)/lib -lglut
  23. GLUT_LIB=-framework GLUT
  24. GLUT_INC=
  25. ifdef IGL_NO_MOSEK
  26. CFLAGS+=-DIGL_NO_MOSEK
  27. else
  28. # Adjust your mosek paths etc. accordingly
  29. ifndef MOSEKPLATFORM
  30. MOSEKPLATFORM=osx64x86
  31. endif
  32. ifndef MOSEKVERSION
  33. MOSEKVERSION=7
  34. endif
  35. IGLMOSEK=../mosek/
  36. IGLMOSEK_INC=-I$(IGLMOSEK)/
  37. MOSEK=/usr/local/mosek
  38. MOSEK_INC=-I$(MOSEK)/$(MOSEKVERSION)/tools/platform/$(MOSEKPLATFORM)/h
  39. MOSEK_LIB=-L$(MOSEK)/$(MOSEKVERSION)/tools/platform/$(MOSEKPLATFORM)/bin -lmosek64
  40. endif
  41. CGAL=/opt/local/
  42. CGAL_LIB=-L$(CGAL)/lib -lCGAL -lCGAL_Core -lgmp -lmpfr -lboost_thread-mt -lboost_system-mt
  43. CGAL_INC=-I$(CGAL)/include -I/usr/include/
  44. # This is absolutely necessary for Exact Construction
  45. CGAL_FLAGS=-frounding-math -fsignaling-nans
  46. CFLAGS+=$(CGAL_FLAGS)
  47. INC=$(LIBIGL_INC) $(ANTTWEAKBAR_INC) $(EIGEN3_INC) $(MATLAB_INC) $(GLUT_INC) ${CGAL_INC} ${TETGEN_INC} $(MOSEK_INC) $(EMBREE_INC)
  48. LIB=$(OPENGL_LIB) $(GLUT_LIB) $(ANTTWEAKBAR_LIB) $(LIBIGL_LIB) $(MATLAB_LIB) ${CGAL_LIB} $(CARBON_LIB) $(TETGEN_LIB) $(MOSEK_LIB) $(EMBREE_LIB)
  49. CPP_FILES=$(wildcard ./*.cpp)
  50. OBJ_FILES=$(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o)))
  51. CFLAGS+=-std=c++11 -g
  52. example: obj $(OBJ_FILES)
  53. g++ $(OPENMP) $(AFLAGS) $(CFLAGS) -o example $(LIB) $(OBJ_FILES)
  54. obj:
  55. mkdir -p obj
  56. obj/%.o: %.cpp
  57. g++ $(OPENMP) $(AFLAGS) $(CFLAGS) -c $< -o $@ $(INC)
  58. obj/%.o: %.cpp %.h
  59. g++ $(OPENMP) $(AFLAGS) $(CFLAGS) -c $< -o $@ $(INC)
  60. clean:
  61. rm -f $(OBJ_FILES)
  62. rm -f example