
# QTDIR=/usr/lib/qt4


DEFINES       = -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
CPPFLAGS      = -pipe -g -gdwarf-2 -Wall -W $(DEFINES)
LFLAGS        = -headerpad_max_install_names


INCPATH = -I. -Imesh -Imathvector
# INCPATH += -I$(QTDIR)/include -I$(QTDIR)/include/QtCore -I$(QTDIR)/include/QtGui -I$(QTDIR)/include/QtOpenGL
INCPATH += -I/usr/X11/include -I/usr/local/Qt4.7/mkspecs/macx-g++ -I. -I/Library/Frameworks/QtCore.framework/Versions/4/Headers -I/usr/include/QtCore -I/Library/Frameworks/QtGui.framework/Versions/4/Headers -I/usr/include/QtGui -I/Library/Frameworks/QtOpenGL.framework/Versions/4/Headers -I/usr/include/QtOpenGL -I/usr/include -I. -F/Library/Frameworks

LIBPATH = $(LFLAGS) -L/usr/local/lib -L/usr/X11R6/lib 
# LIBPATH += -L$(QTDIR)/lib 

CC=g++
# MOC=$(QTDIR)/bin/moc
MOC=moc
EXE=mview

CPPFLAGS += $(INCPATH) -O2
# supposedly compiler options for faster code
#CPPFLAGS = $(INCPATH) -O3 -fexceptions --fast-math -felide-constructors -fexpensive-optimizations -fdelayed-branch -fschedule-insns

LIBS_QT3 = -lGL -lGLU -lqt-mt
# LIBS_QT4 = -lGL -lGLU -lQtCore -lQtGui -lQtOpenGL
LIBS_QT4 = -lGL -lglut -lGLU -F/Library/Frameworks -L/Library/Frameworks -framework QtGui -framework QtCore -framework QtOpenGL
LIBS_GLUT = -lGL -lGLU -lglut -ljpeg
 
QT3 =	qt3/main.o \
	qt3/mview.o \
	qt3/viewpointdialog.o \
	qt3/coordinates.o \
	qt3/glmesh.o \
	qt3/glmesh_common.o \
	qt3/texture.o \
	qt3/image.o

QT3_MOC = qt3/mview.moc.o \
	qt3/viewpointdialog.moc.o \
	qt3/coordinates.moc.o \
	qt3/glmesh.moc.o

QT4 =	qt4/main.o \
	qt4/mview.o \
	qt4/coordinates.o \
	qt4/viewpointdialog.o \
	qt4/glmesh.o \
	qt4/glmesh_common.o \
	qt4/texture.o \
	qt4/image.o

QT4_MOC = qt4/mview.moc.o \
	qt4/viewpointdialog.moc.o \
	qt4/coordinates.moc.o \
	qt4/glmesh.moc.o

GLUT =  glut/main.o \
	glut/glmesh.o \
	glut/glmesh_common.o \
	glut/texture.o \
	glut/image.o

MESH =	mesh/mesh.o \
	mesh/shape.o \
	mesh/triangle.o \
	mesh/vertex.o \
	mesh/edge.o \
	mesh/p_mesh.o \
	mesh/gts_mesh.o\
	mesh/geomview_mesh.o\
	mesh/vrml1_mesh.o \
	mesh/vrml2_mesh.o \
	mesh/list_mesh.o \
	mesh/feature_mesh.o \
	mesh/ply_mesh.o \
	mesh/obj_mesh.o \
	mesh/vtk_mesh.o \
	mesh/x3d_mesh.o \
	mesh/shallo_mesh.o

VEC =	mathvector/mathvector.o

all: QT4

QT3:
	rm -f qt3/mview.o
	make QT3_2

QT4:
	rm -f qt4/mview.o
	make QT4_2

GLUT: $(GLUT) $(MESH) $(VEC)
	$(CC) $? $(LIBPATH) $(LIBS_GLUT) -o $(EXE)

QT3_2: $(QT3) $(QT3_MOC) $(MESH) $(VEC)
	$(CC) $? $(LIBPATH) $(LIBS_QT3) -o $(EXE)

QT4_2: $(QT4) $(QT4_MOC) $(MESH) $(VEC)
	$(CC) $? $(LIBPATH) $(LIBS_QT4) -o $(EXE)

%.o : %.cpp
	$(CC) $(CPPFLAGS) $(FLAGS) -c -o $@ $<

%.moc.cpp : %.h
	$(MOC) $< > $@

tidy:
	find . -name "*cpp" -exec touch -c {} \;

clean:
	rm -f $(EXE) $(QT3) $(QT3_MOC) $(QT4) $(QT4_MOC) $(GLUT) $(MESH) $(VEC)
