############################################################ # Sample Makefile for OpenGL Programs # # Visualization Course, Fall 2001, Yap. # # Please use this as pattern to organize your projects # How to use this make file: # # If you want to compile a program named XXX.c or XXX.cc, type # # > make p=XXX # # You can always use the default, and simply type "make". # To test the default program, type "make test" # ############################################################ ############################################################ # Variables ############################################################ # platform (either "unix" or "cyg") pf = cyg pf = unix # compiler CC = gcc C++ = g++ # extension ext = cc ext = c # Runtime libraries 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 = exe = WINDOZ = endif # version is "v" v= # program is "p" p=rotate # program is "pv" pv=$(p)$(v) ############################################################ # Compilation Targets # # You can compile any program "foo" by calling # # % make p=foo # ############################################################ $(pv).exe exe: $(pv).o $(C++) $(pv).o $(LIBS) -o $(pv) $(pv).o o: $(pv).$(ext) $(CC) -c $(INC) $(pv).$(ext) test run: $(pv).exe $(pv) ############################################################ # House keeping functions ############################################################ tar: tar -cvf T.tar * save: ifeq ($(pf),unix) ci -l *.$(ext) Make* *html else cp *.$(ext) Make* *html RCS endif clean: -@rm -f *.o veryclean: clean -@rm -f *.exe ############################################################ # THE END ############################################################