#  Makefile fr Raytracer
#  Copyright (C) 1996 Helmut Fahrion

# alle Programme auf einmal
all:		raywin startm show \
		raywin_static startm_static \
		raywin_single \
		clean

# C++ FLAGS
CXX 		= g++

# fr die Endversion 586
OPTIM		= -Wall -Wno-unused -O6 -ffast-math -m486 -D_REENTRANT
OPTIMSINGLE	= -Wall -Wno-unused -O6 -ffast-math -m486

# fr Debugger
#OPTIM		= -Wall -O0 -g

CPPFLAGS	= $(OPTIM) -I/usr/X11/include
CPPFLAGSSINGLE	= $(OPTIMSINGLE) -I/usr/X11/include

LIBPATH		= -L/usr/X11/lib

XLIB		= -lXt -lSM -lICE -lXpm -lXext -lX11
ATHENALIB	= -lXaw
MOTIFLIB	= -lXm
MATHELIB	= -lm
COLORLIB	= -lXmu
THREADLIB	= -lpthread

LIBSNAZ		= $(MOTIFLIB) $(XLIB) $(MATHELIB)
LIBSNAZTHR	= $(THREADLIB) $(MOTIFLIB) $(XLIB) $(MATHELIB)
LIBSSTART	= $(MOTIFLIB) $(XLIB)
LIBSSHOW	= $(COLORLIB) $(XLIB) $(MATHELIB)

OBJSXW 		= raywin.o pixel.o vect.o obj.o ray.o schnitte.o bckgrnd.o\
		  world.o screen.o gif.o tree.o polygon.o sphere.o elipsoid.o\
		  cone.o torus.o block.o wave.o muster.o turbo.o ybuffer.o\
		  text3d.o lamp.o spot.o lichtpoly.o zbuffer.o\
		  patches.o radiosity.o twopass.o raytreads.o texture.o\
		  patchobj.o

SRCXW 		= raywin.C pixel.C vect.C obj.C ray.C schnitte.C bckgrnd.C\
		  world.C screen.C gif.C tree.C polygon.C sphere.C elipsoid.C\
		  cone.C torus.C block.C wave.C muster.C turbo.C ybuffer.C\
		  text3d.C lamp.C spot.C lichtpoly.C zbuffer.C\
		  patches.C radiosity.C twopass.C raytreads.C texture.C\
		  patchobj.C

OBJSTART 	= startm.o
OBJSHOW		= vect.o show.o

.SUFFIXES:
.SUFFIXES:	.C .o
.C.o:
	$(CXX) $(CPPFLAGS) -c -o $@ $<


# *** die dynamisch gelinkten Versionen
raywin:	$(OBJSXW)
	$(CXX) -o raywin $(OBJSXW) $(LIBPATH) $(LIBSNAZTHR)
	mv raywin ../../bin/raywin_dt

startm:	$(OBJSTART)
	$(CXX) -o startm startm.o $(LIBPATH) $(LIBSSTART)
	mv startm ../../bin/startm_d

show: 	$(OBJSHOW)
	$(CXX) -o show $(LIBPATH) $(OBJSHOW) $(LIBSSHOW)
	mv show ../../bin/show_d

# *** die statisch gelinkten Versionen und Einzel ZVE
raywin_static:
	$(CXX) $(CPPFLAGSSINGLE) -static -o raywin $(SRCXW) $(LIBPATH) $(LIBSNAZ)
	mv raywin ../../bin/raywin_s

startm_static:	$(OBJSTART)
	$(CXX) -static -o startm startm.o $(LIBPATH) $(LIBSSTART)
	mv startm ../../bin/startm_s

# die nicht Einzel ZVE Version, mit einem Ritt
raywin_single:
	$(CXX) $(CPPFLAGSSINGLE) -o raywin $(SRCXW) $(LIBPATH) $(LIBSNAZ)
	mv raywin ../../bin/raywin_d

clean:	
	rm -f *.o *~ show raywin startm datem








