############################################################
# Simple Makefile for OpenGL Programs
#
#   Visualization Course, Fall 2001, Yap.
#
#   Please use this as pattern to organize your projects
############################################################

############################################################
# Variables
############################################################

# platform (either "unix" or "cyg")
pf = cyg

# compiler
CC = g++

# Runtime libraries
   ifeq ($(pf),cyg)
	LIBS= -L\bin -lglut32 -L\cygdrive\c\WINDOWS\system32 -lopengl32 -lglu32
   else
	LIBS = -L/usr/X11R6/lib -L/usr/unsupported/installers/chenli/lib \
		-lglut -lGL -lGLU -lXmu -lXi -lXext -lX11 -lm -lsocket -lnsl
   endif


# Include headers files
   ifeq ($(pf),cyg)
	INC= -I\usr\include
   else
	INC = -I/usr/unsupported/installers/chenli/include
   endif

# version is "v"
v=
# program is "p"
p=hw3a

# program is "pv"
pv=$(p)$(v)

############################################################
# Compilation Targets
#
#	You can compile any program "foo" by calling
#
#		% make p=foo
#
############################################################

dep=state
dep2=server
exe: $(dep).o $(pv).o
	$(CC) $(dep).o $(pv).o $(LIBS) -o $(pv)
$(pv).o: $(pv).cc
	$(CC) -c $(INC) $(pv).cc 
$(dep).o: $(dep).cc
	$(CC) -c $(INC) $(dep).cc	

run: $(pv).exe
	$(pv)

#############################################################

a:
	$(CC) -c $(INC) $(dep).cc hw3a.cc
	$(CC) $(dep).o hw3a.o $(LIBS) -o hw3a	

b:
	$(CC) -c $(INC) $(dep).cc hw3b.cc
	$(CC) $(dep).o hw3b.o $(LIBS) -o hw3b	

c:
	$(CC) -c $(INC) $(dep).cc hw3c.cc
	$(CC) $(dep).o hw3c.o $(LIBS) -o hw3c	
	
d:
	$(CC) -c $(INC) $(dep).cc $(dep2).cc hw3d.cc
	$(CC) $(dep).o $(dep2).o $(LIBS) -o $(dep2)	
	$(CC) $(dep).o hw3d.o $(LIBS) -o hw3d			
	
testa:
	./hw3a
testb:
	./hw3b
testc:
	./hw3c
testd:
	./hw3d
	
		
############################################################
# House keeping functions
############################################################

tar:
	tar -cvf hw4.tar *.cc *.h *.txt Makefile

save:
ifeq ($(pf),unix)
	ci -l *.cc Make* *html
else
	cp *.cc Make* *html RCS
endif

clean:
	-@rm -f *.o 

veryclean: clean
	-@rm -f *.exe

############################################################
# THE END
############################################################
