# Generated automatically from Makefile.in by configure.
##################################################
#
#   Makefile for GEM
#   	    Graphics Environment for Multimedia
#
#   mdanks@cybermed.ucsd.edu
#
#   Copyright (c) 1997-1998 Mark Danks.
#   For information on usage and redistribution, and for a DISCLAIMER OF ALL
#   WARRANTIES, see the file, "GEM.LICENSE.TERMS" in this distribution.
#
#	$Id: Makefile,v 1.4 1998/01/28 07:23:03 mdanks Exp $
#
##################################################

# the objects
#############
BASE_CORE = CPPExtern.o GemMan.o gemhead.o GemBase.o
BASE_EXT = GemShape.o GemGluObj.o GemPixObj.o GemPixDualObj.o
BASE_OBJ = ${BASE_CORE} ${BASE_EXT}
UTILS_BASE = GemSetup.o GemState.o GemCache.o GemDag.o
UTILS_PIX = GemPixUtil.o GemPixImageLoad.o
UTILS_OS = GemWinCreateXWin.o
UTILS = ${UTILS_BASE} ${UTILS_PIX} ${UTILS_OS}

CONTROLS = gemwin.o camera.o render_trigger.o
MANIPS_A = translateXYZ.o scaleXYZ.o colorRGB.o
MANIPS_B = rotate.o translate.o scale.o color.o depth.o alpha.o separator.o
MANIPULATORS = ${MANIPS_A} ${MANIPS_B}
2DGEOS = square.o triangle.o circle.o
3DGEOS = cube.o cone.o sphere.o imageVert.o
SPEC_GEOS = polygon.o model.o multimodel.o curve.o text.o colorSquare.o
GEOS = ${2DGEOS} ${3DGEOS} ${SPEC_GEOS}
NONGEOS = world_light.o light.o

PIX_GEOS = pix_image.o pix_multiimage.o pix_texture.o pix_draw.o pix_snap.o
PIX_CONTROLS = pix_resize.o pix_buf.o pix_zoom.o
PIX_MANA = pix_add.o pix_subtract.o pix_multiply.o
PIX_MANB = pix_threshold.o pix_gain.o pix_color.o pix_bitmask.o pix_flip.o
PIX_MANC = pix_colormatrix.o pix_alpha.o pix_convolve.o pix_composite.o
PIX_MAND = pix_coloralpha.o pix_mask.o pix_clearblock.o
PIX_MANE = pix_coordinate.o pix_2grey.o pix_invert.o
PIX_MANIPS = ${PIX_MANA} ${PIX_MANB} ${PIX_MANC} ${PIX_MAND} ${PIX_MANE}
PIXES = ${PIX_GEOS} ${PIX_CONTROLS} ${PIX_MANIPS}

SGI_SPECIFIC = pix_videoSGI.o pix_indycam.o

OBJ = ${BASE_OBJ} ${UTILS} ${CONTROLS} ${MANIPULATORS} \
      ${GEOS} ${NONGEOS} ${PIXES}


# autoconf part

# set MAKE to make



SHELL = sh

#
#  Platform specific configuration
##################################


#
# Configuration for Linux
#
#


# Object directory
OBJ_DIR = ../Objects

# The name of the target
TARGET = ../../Gem.pd_linux

#compilation flags
COMP_FLAGS        = -D_UNIX_  -D_LANGUAGE_C_PLUS_PLUS

#warnings
WARN_FLAGS      = -Wall -fenum-int-equiv -Wno-unused

#libraries
LIB = -lMesaGLU -lMesaGL -lm -L../td -ltd -ltiff -lX11 -lXext -ldl -lstdc++

#linker flags
LD_FLAGS = -L/usr/X11R6/lib -shared

MAKE_TARG = all

OBJECTS = ${OBJ}

# linux

$(OBJ_DIR)/%.o %.o : %.cpp
	$(CXX) ${CC_FLAGS} -c $*.cpp -o ${OBJ_DIR}/$@


# search path
#############

OBJ_DIR     	= Objects
VPATH	    	= ${OBJ_DIR}

# compile flags
###############

REL_CC_FLAGS   	= -DNDEBUG -UDEBUG -O2
DBG_CC_FLAGS 	= -DDEBUG -g

INC_FLAGS   	= -I. -I.. -I../../../src

ALL_CC_FLAGS    = ${COMP_FLAGS} ${WARN_FLAGS} ${INC_FLAGS}

all: debug

# debug version
#--------------
debug:
	@echo "\n==========Compiling Debug=========="
	${MAKE} Application_objects "CC_FLAGS = ${ALL_CC_FLAGS} ${DBG_CC_FLAGS}"
	@echo "\n==========Linking Target=========="
	@${MAKE} ${TARGET}

# release version
#----------------
release:
	@echo "\n==========Compiling Release=========="
	${MAKE} Application_objects "CC_FLAGS = ${ALL_CC_FLAGS} ${REL_CC_FLAGS}"
	@echo "\n==========Linking Target=========="
	@${MAKE} ${TARGET}
	@echo "\n==========Striping Target=========="
	cd ${OBJ_DIR}; strip -f ${TARGET}


# program target
################
${TARGET}: ${OBJECTS}
	cd ${OBJ_DIR}; ${CC} ${LD_FLAGS} -o $@  ${OBJECTS} ${LIB}


TARG_DIR = Base Geos Nongeos Controls Manips Pixes


Application_objects:
	@for d in ${TARG_DIR}; do \
	    echo "\n----------$$d----------"; \
	    cd $$d ; ${MAKE} ${MAKE_TARG}; cd ..; \
	done


# helper targets
################
AUX_FILES = gem/GEM.*
DOC_FILES = gem/help gem/examples gem/doc
SRC_FILES = gem/src 
BCK_FILES = ${AUX_FILES} ${DOC_FILES} ${SRC_FILES}

backup:
	cd ../..; tar cvf GEMbackupC++.tar ${BCK_FILES}; \
	compress GEMbackupC++.tar; \
	mv GEMbackupC++.tar.Z /disk3/mdanks/Backup/

clean:
	rm ${OBJ_DIR}/*.o

clobber: clean
	rm ${TARGET}
	rm Makefile.depend


#--------------------------
# Makedepend targets
#--------------------------
#
# header file dependencies
#---------
depend:
	@for d in ${TARG_DIR}; do \
	    echo "==== $$d ===="; \
	    cd $$d ; ${MAKE} dependencies 1>/dev/null 2>&1; cd ..; \
	done

# need a dummy file for Make.depend
#---------
firstTime:
	@for d in ${TARG_DIR}; do \
	    cd $$d ; touch Make.depend; cd ..; \
	done
