include VP_OBJS.UNX

RND_OBJS = ${MSH_OBJ} ${PLY_OBJ} ${TRI_OBJ} ${QAD_OBJ}
BCH_OBJS = ${BCH_OBJ} ${EVT_OBJ}
OBJS = ${RND_OBJS} ${BCH_OBJS}

AUX_DIR=vpaux/libaux
TK_DIR=vpaux/libtk

CDEBUGFLAGS = -O2
INCLUDES = -I$(AUX_DIR)
DEFINES = -DXWINDOWS -DSEARCHPATH
# edit EnvXXX.c to be your version of Env.c, such as EnvDEC.c
ENV_C=EnvXXX.c
CCFLAGS = 
CFLAGS = $(CCFLAGS) $(CDEBUGFLAGS) $(INCLUDES) $(DEFINES)
LIBS = -Lobjs -L$(AUX_DIR) -L$(TK_DIR) -lvp -lGL -lGLU -lm -lX11 -lXext -laux


viewperf: objs ${BCH_OBJS} $(AUX_DIR)/libaux.a objs/libvp.a
	$(CC) -o viewperf ${BCH_OBJS} $(LIBS)

objs:
	mkdir objs

$(AUX_DIR)/libaux.a : $(TK_DIR)/libtk.a
	cd $(AUX_DIR); make libaux.a

$(TK_DIR)/libtk.a :
	cd $(TK_DIR); make libtk.a

objs/libvp.a : ${RND_OBJS}
	ar rv $@ $? 

${MSH_OBJ}: mshF.c
	$(CC) -c mshF.c -o $@ ${CFLAGS} -D${@F:.o=}

${PLY_OBJ}: plyF.c
	$(CC) -c plyF.c -o $@ ${CFLAGS} -D${@F:.o=}

${TRI_OBJ}: triF.c
	$(CC) -c triF.c -o $@ ${CFLAGS} -D${@F:.o=}

${QAD_OBJ}: qadF.c
	$(CC) -c qadF.c -o $@ ${CFLAGS} -D${@F:.o=}

${EVT_OBJ}: evtF.c
	$(CC) -c evtF.c -o $@ ${CFLAGS} -D${@F:.o=}

objs/clock.o: clock.c
	$(CC) -c clock.c -o $@ ${CFLAGS}

objs/Env.o: Env.c
	$(CC) -c Env.c -o $@ ${CFLAGS}

objs/viewperf.o: viewperf.c
	$(CC) -c viewperf.c -o $@ ${CFLAGS}

Env.c:
	ln -s $(ENV_C) Env.c

clean:
	rm -f ${OBJS} viewperf Env.c objs/libvp.a
	cd vpaux/libtk; make clean
	cd vpaux/libaux; make clean
