Makefile 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  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. CXX=clang++
  7. C=clang
  8. #CXX=clang++-mp-3.4
  9. #C=clang-mp-3.4
  10. CXXFLAGS += -stdlib=libc++ -std=c++11
  11. #Be sure that libs aren't used
  12. LIBIGL=../../
  13. LIBIGL_INC=-I$(LIBIGL)/include
  14. # Do not use the GLU that comes with the macports Mesa:
  15. # http://www.alecjacobson.com/weblog/?p=2827
  16. GLU=/usr/local/
  17. GLU_INC=-I$(GLU)/include
  18. #GLU_LIB=-L$(GLU)/lib -lGLU
  19. GLU_LIB=$(GLU)/lib/libGLU.a
  20. MESA=/opt/local/
  21. MESA_INC=-I$(MESA)/include
  22. MESA_LIB=-L$(MESA)/lib -lOSMesa -lGL
  23. OBJC_LIB=-lobjc
  24. all: obj Mesh.qlgenerator
  25. install:
  26. rm -rf /Library/QuickLook/Mesh.qlgenerator
  27. cp -R Mesh.qlgenerator /Library/QuickLook/Mesh.qlgenerator
  28. qlmanage -r
  29. qlmanage -r cache
  30. #CFLAGS += -Wall -g -O0
  31. # openmp is unfortunately not supported by llvm
  32. CFLAGS += -O3 -Wall -DNDEBUG -Winvalid-pch -m64 -msse4.2
  33. OBJCFLAGS += -O3 -Wall -DNDEBUG -Winvalid-pch -m64 -msse4.2
  34. CPP_FILES=$(wildcard src/*.cpp)
  35. C_FILES=$(wildcard src/*.c)
  36. M_FILES=$(wildcard src/*.m)
  37. OBJ_FILES=$(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) \
  38. $(addprefix obj/,$(notdir $(M_FILES:.m=.o))) \
  39. $(addprefix obj/,$(notdir $(C_FILES:.c=.o)))
  40. LIB+=$(LIBIGL_LIB) $(GLU_LIB) $(MESA_LIB) $(OBJC_LIB) -framework Foundation \
  41. -framework AppKit -framework QuickLook -lc++
  42. INC+=$(EIGEN3_INC) $(LIBIGL_INC) $(GLU_INC) $(MESA_INC)
  43. .PHONY:
  44. Mesh.qlgenerator: Mesh.qlgenerator/Contents/MacOS/ \
  45. Mesh.qlgenerator/Contents/Resources/ \
  46. Mesh.qlgenerator/Contents/MacOS/Mesh \
  47. Mesh.qlgenerator/Contents/Info.plist
  48. Mesh.qlgenerator/Contents/Info.plist: Info.plist
  49. cp Info.plist Mesh.qlgenerator/Contents/Info.plist
  50. Mesh.qlgenerator/Contents/MacOS/:
  51. mkdir -p $@
  52. Mesh.qlgenerator/Contents/Resources/:
  53. mkdir -p $@
  54. Mesh.qlgenerator/Contents/MacOS/Mesh: $(OBJ_FILES)
  55. ${CXX} $(CFLAGS) $(CXXFLAGS) -bundle -o $@ $(OBJ_FILES) $(LIB)
  56. #dylibbundler -od -b -x ./Mesh.qlgenerator/Contents/MacOS/Mesh -d ./Mesh.qlgenerator/Contents/libs/
  57. obj:
  58. mkdir -p obj
  59. obj/%.o: src/%.cpp src/%.h
  60. ${CXX} $(CFLAGS) $(CXXFLAGS) -o $@ -c $< $(INC)
  61. obj/%.o: src/%.m
  62. ${CXX} $(OBJCFLAGS) -o $@ -c $< $(INC)
  63. obj/%.o: src/%.c
  64. ${C} $(CFLAGS) -o $@ -c $< $(INC)
  65. clean:
  66. rm -f $(OBJ_FILES)
  67. rm -rf Mesh.qlgenerator