Files
igl/examples/quicklook-mesh/Makefile
T
2014-01-13 19:11:11 +01:00

92 lines
2.3 KiB
Makefile

.PHONY: all, install
# Seems that we unfortunately must use llvm or else we get issues trying to
# include the Foundation headers
#CXX=llvm-g++
#C=llvm-gcc
CXX=clang++
C=clang
#CXX=clang++-mp-3.4
#C=clang-mp-3.4
CXXFLAGS += -stdlib=libc++ -std=c++11
EIGEN=/opt/local/include/eigen3/
EIGEN3_INC=-I$(EIGEN) -I$(EIGEN)/unsupported
LIBIGL=../../
#LIBIGL_LIB=-L$(LIBIGL)/lib -ligl
LIBIGL_LIB=
LIBIGL_INC=-DIGL_HEADER_ONLY -I $(LIBIGL)/include
# Do not use the GLU that comes with the macports Mesa:
# http://www.alecjacobson.com/weblog/?p=2827
GLU=/usr/local/
GLU_INC=-I$(GLU)/include
#GLU_LIB=-L$(GLU)/lib -lGLU
GLU_LIB=$(GLU)/lib/libGLU.a
MESA=/opt/local/
MESA_INC=-I$(MESA)/include
MESA_LIB=-L$(MESA)/lib -lOSMesa -lGL
OBJC_LIB=-lobjc
all: obj Mesh.qlgenerator
install:
rm -rf /Library/QuickLook/Mesh.qlgenerator
cp -R Mesh.qlgenerator /Library/QuickLook/Mesh.qlgenerator
qlmanage -r
qlmanage -r cache
#CFLAGS += -Wall -g -O0
# openmp is unfortunately not supported by llvm
CFLAGS += -O3 -Wall -DNDEBUG -Winvalid-pch -m64 -msse4.2
OBJCFLAGS += -O3 -Wall -DNDEBUG -Winvalid-pch -m64 -msse4.2
CPP_FILES=$(wildcard src/*.cpp)
C_FILES=$(wildcard src/*.c)
M_FILES=$(wildcard src/*.m)
OBJ_FILES=$(addprefix obj/,$(notdir $(CPP_FILES:.cpp=.o))) \
$(addprefix obj/,$(notdir $(M_FILES:.m=.o))) \
$(addprefix obj/,$(notdir $(C_FILES:.c=.o)))
LIB+=$(LIBIGL_LIB) $(GLU_LIB) $(MESA_LIB) $(OBJC_LIB) -framework Foundation \
-framework AppKit -framework QuickLook -lc++
INC+=$(EIGEN3_INC) $(LIBIGL_INC) $(GLU_INC) $(MESA_INC)
.PHONY:
Mesh.qlgenerator: Mesh.qlgenerator/Contents/MacOS/ \
Mesh.qlgenerator/Contents/Resources/ \
Mesh.qlgenerator/Contents/MacOS/Mesh \
Mesh.qlgenerator/Contents/Info.plist
Mesh.qlgenerator/Contents/Info.plist: Info.plist
cp Info.plist Mesh.qlgenerator/Contents/Info.plist
Mesh.qlgenerator/Contents/MacOS/:
mkdir -p $@
Mesh.qlgenerator/Contents/Resources/:
mkdir -p $@
Mesh.qlgenerator/Contents/MacOS/Mesh: $(OBJ_FILES)
${CXX} $(CFLAGS) $(CXXFLAGS) -bundle -o $@ $(OBJ_FILES) $(LIB)
#dylibbundler -od -b -x ./Mesh.qlgenerator/Contents/MacOS/Mesh -d ./Mesh.qlgenerator/Contents/libs/
obj:
mkdir -p obj
obj/%.o: src/%.cpp src/%.h
${CXX} $(CFLAGS) $(CXXFLAGS) -o $@ -c $< $(INC)
obj/%.o: src/%.m
${CXX} $(OBJCFLAGS) -o $@ -c $< $(INC)
obj/%.o: src/%.c
${C} $(CFLAGS) -o $@ -c $< $(INC)
clean:
rm -f $(OBJ_FILES)
rm -rf Mesh.qlgenerator