Makefile 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. .PHONY: all, install
  2. # Seems that we unfortunately must use llvm or else we get issues trying to
  3. # include the Foundation headers
  4. CXX=llvm-g++
  5. C=llvm-gcc
  6. EIGEN=/opt/local/include/eigen3/
  7. EIGEN3_INC=-I$(EIGEN) -I$(EIGEN)/unsupported
  8. LIBIGL=/usr/local/igl/libigl/
  9. LIBIGL_LIB=-L$(LIBIGL)/lib -ligl -liglmatlab
  10. LIBIGL_INC=-I $(LIBIGL)/include
  11. # Do not use the GLU that comes with the macports Mesa:
  12. # http://www.alecjacobson.com/weblog/?p=2827
  13. GLU=/usr/local/
  14. GLU_INC=-I$(GLU)/include
  15. GLU_LIB=-L$(GLU)/lib -lGLU
  16. MESA=/opt/local/
  17. MESA_INC=-I$(MESA)/include
  18. MESA_LIB=-L$(MESA)/lib -lOSMesa -lGL
  19. OBJC_LIB=-lobjc
  20. all: obj Mesh.qlgenerator
  21. install:
  22. rm -rf /Library/QuickLook/Mesh.qlgenerator
  23. cp -R Mesh.qlgenerator /Library/QuickLook/Mesh.qlgenerator
  24. qlmanage -r
  25. qlmanage -r cache
  26. #CFLAGS += -Wall -g -O0
  27. # openmp is unfortunately not supported by llvm
  28. CFLAGS += -O3 -Wall -DNDEBUG -Winvalid-pch -m64 -msse4.2
  29. CPP_FILES=$(wildcard src/*.cpp)
  30. C_FILES=$(wildcard src/*.c)
  31. M_FILES=$(wildcard src/*.m)
  32. OBJ_FILES=$(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) \
  33. $(addprefix obj/,$(notdir $(M_FILES:.m=.o))) \
  34. $(addprefix obj/,$(notdir $(C_FILES:.c=.o)))
  35. LIB+=$(LIBIGL_LIB) $(GLU_LIB) $(MESA_LIB) $(OBJC_LIB) -framework Foundation \
  36. -framework AppKit -framework QuickLook
  37. INC+=$(EIGEN3_INC) $(LIBIGL_INC) $(GLU_INC) $(MESA_INC)
  38. .PHONY:
  39. Mesh.qlgenerator: Mesh.qlgenerator/Contents/MacOS/ \
  40. Mesh.qlgenerator/Contents/Resources/ \
  41. Mesh.qlgenerator/Contents/MacOS/Mesh \
  42. Mesh.qlgenerator/Contents/Info.plist
  43. Mesh.qlgenerator/Contents/Info.plist: Info.plist
  44. cp Info.plist Mesh.qlgenerator/Contents/Info.plist
  45. Mesh.qlgenerator/Contents/MacOS/:
  46. mkdir -p $@
  47. Mesh.qlgenerator/Contents/Resources/:
  48. mkdir -p $@
  49. Mesh.qlgenerator/Contents/MacOS/Mesh: $(OBJ_FILES)
  50. ${CXX} $(CFLAGS) -bundle -o $@ $(OBJ_FILES) $(LIB)
  51. obj:
  52. mkdir -p obj
  53. obj/%.o: src/%.cpp src/%.h
  54. ${CXX} $(CFLAGS) -o $@ -c $< $(INC)
  55. obj/%.o: src/%.m
  56. ${CXX} $(CFLAGS) -o $@ -c $< $(INC)
  57. obj/%.o: src/%.c
  58. ${C} $(CFLAGS) -o $@ -c $< $(INC)
  59. clean:
  60. rm -f $(OBJ_FILES)
  61. rm -rf Mesh.qlgenerator