#!smake -J 1
#
# Makefile for OpenGL Volumizer demo programs
#

include /usr/include/make/commondefs

TARGETS = \
  voglSimple voglBasic voglCache voglRaw voglMPR1 voglMPR2 voglSpaceLeap \
  voglMorph voglPick voglSphere voglShade voglUnstructured \
  vogl4D voglPerVertexColors voglMultiVolume \
  voglMirror \
  $(NULL)

default all: $(TARGETS)

LLDLIBS = -lvo -lifl -lGLw -lGL -lXm -lXt -lX11 -lm
LDFLAGS += -Wl,-woff,31

CC = $(C++C)

COMMON_OBJS = voglMain.o voglArgsParser.o myLutIO.o myBrickIO.o trackball.o

voglSimple_OBJS = voglSimpleMain.o voglSimpleVolume.o myBrickIO.o
voglSimple: $(voglSimple_OBJS)
	$(CC) -o $@ $(voglSimple_OBJS) $(LDFLAGS) $(LLDLIBS)

voglBasic_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglInitGeometry.o voglInitTransient.o voglInitGfx.o \
  voglDraw.o
voglBasic: $(voglBasic_OBJS)
	$(CC) -o $@ $(voglBasic_OBJS) $(LDFLAGS) $(LLDLIBS)

voglCache_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglInitGeometry.o voglInitTransient.o voglInitGfx.o \
  voglCache.o
voglCache: $(voglCache_OBJS)
	$(CC) -o $@ $(voglCache_OBJS) $(LDFLAGS) $(LLDLIBS)

voglRaw_OBJS = $(COMMON_OBJS) \
  voglRaw.o voglInitGeometry.o voglInitTransient.o voglInitGfx.o voglCache.o
voglRaw:$(voglRaw_OBJS)
	$(CC) -o $@ $(voglRaw_OBJS) $(LDFLAGS) $(LLDLIBS)

voglMPR1_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglInitTransient.o voglInitGfx.o voglMPR1.o
voglMPR1: $(voglMPR1_OBJS)
	$(CC) -o $@ $(voglMPR1_OBJS) $(LDFLAGS) $(LLDLIBS)

voglMPR2_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglInitTransient.o voglInitGfx.o voglMPR2.o
voglMPR2: $(voglMPR2_OBJS)
	$(CC) -o $@ $(voglMPR2_OBJS) $(LDFLAGS) $(LLDLIBS)


voglSpaceLeap_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglSpaceLeap.o voglInitTransient.o voglInitGfx.o
voglSpaceLeap:$(voglSpaceLeap_OBJS)
	$(CC) -o $@ $(voglSpaceLeap_OBJS) $(LDFLAGS) $(LLDLIBS)

voglMorph_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglMorph.o voglInitTransient.o voglInitGfx.o\
  voglCache.o
voglMorph:$(voglMorph_OBJS)
	$(CC) -o $@ $(voglMorph_OBJS) $(LDFLAGS) $(LLDLIBS)

voglPick_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglInitGeometry.o voglInitTransient.o voglInitGfx.o \
  voglPick.o
voglPick: $(voglPick_OBJS)
	$(CC) -o $@ $(voglPick_OBJS) $(LDFLAGS) $(LLDLIBS)

voglSphere_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglSphere.o voglInitTransient.o voglInitGfx.o \
  voglCache.o
voglSphere: $(voglSphere_OBJS)
	$(CC) -o $@ $(voglSphere_OBJS) $(LDFLAGS) $(LLDLIBS)

voglShade_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglInitGeometry.o voglInitTransient.o voglInitGfx.o \
  voglShade.o
voglShade: $(voglShade_OBJS)
	$(CC) -o $@ $(voglShade_OBJS) $(LDFLAGS) $(LLDLIBS)

voglUnstructured_OBJS = $(COMMON_OBJS) \
  voglUnstructured.o voglInitTransient.o
voglUnstructured: $(voglUnstructured_OBJS)
	$(CC) -o $@ $(voglUnstructured_OBJS) $(LDFLAGS) $(LLDLIBS)

voglMirror_OBJS = \
  voglMirror.o voglSimpleVolume.o myBrickIO.o myImageIO.o
voglMirror: $(voglMirror_OBJS)
	$(CC) -o $@ $(voglMirror_OBJS) -lglut -lGLU -lXmu $(LDFLAGS) $(LLDLIBS)

voglShadows_OBJS = \
  voglShadows.o voglSimpleVolume.o myBrickIO.o myImageIO.o
voglShadows: $(voglShadows_OBJS)
	$(CC) -o $@ $(voglShadows_OBJS) -lglut -lGLU -lXmu $(LDFLAGS) $(LLDLIBS)

vogl4D_OBJS = \
	voglMain.o voglArgsParser.o myLutIO.o myBrickIO.o trackball.o \
	vogl4D.o voglInitGeometry.o voglDraw.o 
vogl4D: $(vogl4D_OBJS)
	$(CC) -o $@ $(vogl4D_OBJS) $(LDFLAGS) $(LLDLIBS)

voglPerVertexColors_OBJS = $(COMMON_OBJS) \
  voglInitAppearance.o voglPerVertexColors.o voglInitTransient.o voglInitGfx.o \
  voglDraw.o
voglPerVertexColors: $(voglPerVertexColors_OBJS)
	$(CC) -o $@ $(voglPerVertexColors_OBJS) $(LDFLAGS) $(LLDLIBS)

voglMultiVolume_OBJS = \
        voglMain.o voglArgsParser.o myLutIO.o myBrickIO.o trackball.o \
        voglMultiVolume.o
voglMultiVolume: $(voglMultiVolume_OBJS)
	$(CC) -o $@ $(voglMultiVolume_OBJS) $(LDFLAGS) $(LLDLIBS)

clobber:
	\rm -rf Makedepend ii_files *.o $(TARGETS) cubes.64.*tif
