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

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

# program is "p"
p=pixmap
# version is "v"
v=
# final program is "pv"
pv=$(p)$(v)

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

# compiler
CC = gcc
CC = g++

# extension
  ifeq ($(pf),gcc)
	ext = c
  else
	ext = cpp
	ext = cc
  endif

# Runtime libraries and Include Headers
   ifeq ($(pf),cyg)
	LIBS= -L\bin -lglut32 -LC:\WINNT\system32 -lopengl32 -lglu32
	INC= -I\usr\include
	exe = .exe
	WINDOZ = -D_WINDOZ
   else
	LIBS = -L/usr/X11R6/lib -L/usr/unsupported/installers/chenli/lib \
		-lglut -lGL -lGLU -lXmu -lXi -lXext -lX11 -lm -lsocket -lnsl
	LIBS = -L/usr/X11R6/lib -L/usr/unsupported/packages/opengl/Mesa2.4/lib \
		-lglut -lGL -lGLU -lXmu -lXi -lXext -lX11 -lm -lsocket -lnsl
	LIBS = -L/usr/unsupported/installers/yentj/Mesa-4.0/lib \
		-lglut -lGLU -lGL -lXmu -lXi -lXext -lX11 -lm -lsocket -lnsl
	INC = -I/usr/unsupported/installers/chenli/include
	INC = -I/usr/unsupported/packages/opengl/Mesa2.4/include
	INC = -I/usr/unsupported/installers/yentj/Mesa-4.0/include
	exe =
	WINDOZ = 
   endif


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

exe: $(pv).o
	$(CC) $(pv).o $(LIBS) -o $(pv)

$(pv).o o: $(pv).$(ext)
	$(CC) $(WINDOZ) -c $(INC) $(pv).$(ext) 

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

############################################################
# House keeping functions
############################################################

tar:
	-@tar -cvf T.tar \
		Make* *c *.h

save:
ifeq ($(pf),unix)
	-@ci -l *.$(ext) Make* README
else
	-@cp *.$(ext) Make* README RCS
endif

clean:
	-@rm -f *.o 

veryclean: clean
	-@rm -f $(pv)$(exe)

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