# GNU makefile für OpenGL Kompaktkurs Oktober 2oo1

# für folgende Systeme:
# SGI IRIX 5.2 bis 6.5, FSPM Vislab
# Sun SunOS/Solaris, Techfak
# Linux, Mathe-Fakultäk

# Die Namen der Programmen tauchen in diesem GNUmakefile nicht auf,
# so dass /jedes/ einfache OpenGL-Programm hiermit kompiliert werden kann,
# sofern es aus nur einer Quelldatei besteht.
# Es werden keine Compile- und Link-Regeln definiert,
# sondern es werden die GNUmake-Defaults benutzt.
# Es werden keine Dependencies definiert.
# Die Liste der Programme $(PROGS) dient nur zum bequemen
# Löschen (make clean).


# Die Standard-Optionen für Compiler und Linker:
CC      = cc
CFLAGS  = -O
LDFLAGS =
LDLIBS  =
 
# Abfrage der unterschiedlichen UNIX-Versionen:
system  = $(shell uname)
ifeq ($(system), IRIX64)
    system=IRIX
endif

# Modifikation der Compiler/Linker-Optionen,
# je nach UNIX-Version (system = IRIX, Linux oder SunOS):

ifeq ($(system), IRIX)
    release = $(shell uname -r)
    ifeq ($(release), 6.2)
        CFLAGS += -o32
    endif
    ifeq ($(release), 6.3)
        CFLAGS += -o32
    endif
    ifeq ($(release), 6.5)
        CFLAGS += -o32
    endif
    CFLAGS  += -I /vol/local/include 
    LDFLAGS += -L /vol/local/lib
    LDLIBS  += -llocaltiff \
               -lglut -lGLU -lGL -lXext -lXi -lXmu -lX11 -lm
endif  # Ende IRIX

ifeq ($(system), Linux)
    CFLAGS  +=
    LDLIBS  += /vol/local/lib/libtiff.a # shared lib doesn't work
    LDLIBS  += -lz -ljpeg
    LDFLAGS += -L /vol/X11/lib
    LDLIBS  += -lglut -lGLU -lGL -lXext -lXi -lXmu -lX11 -lm
endif  # Ende Linux

ifeq ($(system), SunOS)
    CFLAGS  += -I /vol/wbs/include -I /usr/openwin/include
    LDFLAGS += -L /vol/wbs/lib     -L /usr/openwin/lib
    LDLIBS  += -lglut              -lGL -lGLU -lX11
endif  # Ende SunOS




# Default-Target ist Hilfestellung:
defaulttarget:
	@echo "bitte mit: (g)make <programmname> aufrufen (GNU-make!)"

PROGS   = anim2 blend2 blend3 firstglut \
          fullglut licht1a licht2a list1 lines1 \
          pixels1 points1 points2 \
          polygon1 polygon2 raum1a \
          texture1 texture2 texture3 texture3x \
		  transform1

# Targets für manuellen Aufruf:
all:      $(PROGS)
clean:
	rm -f *.o  $(PROGS)
