# Makefile for isoaxis
#
# (c)SPDsoft 1998
#

PROGRAM		= isoaxis

#
# Set LOC_ARCH environment variable to your system/compiler so
# cf_$(LOC_ARCH).make exists.
#

include	porting/cf_$(LOC_ARCH).make

#
#

AR			= ar vru

#LIBS		= -lglut -lGL -lGLU -lXi -lXmu -lXext -lX11 -ljpeg -lm
#LIBS		= -ljpeg -lm -lobjc
DEFS		= -D_OpenGL_  -DEXTERNAL_SURFACES

#				-DDRAW_NORMALS -DUSE_PRISMA
#				-DUSE_PRISMA
#DEFS		= -D_GL_ -DPRIM_MACROS -DNO_SHOW

MAKEFILE	= Makefile


#COMPAT		= fullscreen_stereo.o
#COMPATH		= fullscreen_stereo.h glutint.h

LOBJS		= camera.o main.o points.o prefs.o primogl.o \
			  ogllight.o  local.o \
			  jscrsave.o \
			  $(COMPAT)


OBJS		= world.o isoaxis.o fmath.o $(LOBJS)

SRCS		= $(OBJS:.o=.c)
HDRS		= camera.h points.h prefs.h prim.h version.h light.h \
			  gmenu.h local.h alfa.h $(COMPATH)


BACKUP		= $(PROGRAM).tgz

SHELL		= /bin/sh


#all:	$(PROGRAM)

$(PROGRAM):	$(OBJS)
		@echo "Linking $(PROGRAM) ..."
		$(LD) $(OBJS) $(LDFLAGS) $(LIBS) -o $(PROGRAM)
#		strip $(PROGRAM)
		@echo "done"

alfa.h: alfa.dat
	awk 'BEGIN { print "static double d[256]={";} \
		{ print "\t" $$1 ",";} \
		END { print "\t0.0};"; }' alfa.dat > alfa.h
	awk 'BEGIN { print "static double a[256]={";} \
		{ print "\t" $$2 ",";} \
		END { print "\t0.0};"; }' alfa.dat >> alfa.h


.c.o:
	$(CC) -O -c $(CFLAGS) $<


clean:;		@rm -f $(OBJS) core tags
	@rm -rf windows/Debug windows/Release

clobber: clean
	@rm -f isoaxis.ncb isoaxis.plg isoaxisd.ilk isoaxis.opt

install:
			@make
			@ln -f $(program) $(HOME)/usr/bin/.
			@echo "Install Done"


depend:;	@makedepend -Y $(SRCS) 2>/dev/null
			@mv -f Makefile.bak $(HOME)/dumpster

echo:;		@echo $(HDRS) $(SRCS)

index:;		@ctags -wx $(HDRS) $(SRCS) > tags

new:
			rm -f $(PROGRAM) $(OBJS)
			make all

backup: $(BACKUP)
	@echo $(BACKUP) is up to date


MAKEFILES= Makefile \
porting/cf_.make \
porting/cf_darwin.make \
porting/cf_irix6.make \
porting/cf_linux.make \
porting/cf_sungcc.make \
porting/cf_tru64.make \
isoaxis.dsp isoaxis.dsw \
IsoAxis.bin

print:
	@sh -c 'for file in $(SRCS) $(HDRS);    \
	do  \
		pr -e4 -t $$file;    \
		echo \\f;    \
	done'

tags:           $(HDRS) $(SRCS); @ctags $(HDRS) $(SRCS)

love:
	@echo "not war?"


dist-all: dist-src dist-bin-windows dist-bin-irix dist-bin-linux-x86 dist-bin-linux-alpha dist-bin-tru64-alpha dist-bin-solaris dist-bin-darwin dist-bin-hpux

dist:
	mkdir dist

dist-bin-hpux:
	$(MAKE) ARCH=hpux-hppa dist-bin

dist-bin-irix:
	$(MAKE) ARCH=irix-mips3 dist-bin

dist-bin-darwin:
	$(MAKE) ARCH=darwin-ppc dist-bin

dist-bin-linux-x86:
	$(MAKE) ARCH=linux-x86 dist-bin

dist-bin-linux-alpha:
	$(MAKE) ARCH=linux-alpha dist-bin

dist-bin-tru64-alpha:
	$(MAKE) ARCH=tru64-alpha dist-bin

dist-bin-solaris:
	$(MAKE) ARCH=solaris-sparc dist-bin

dist-bin-windows: windows/$(PROGRAM).exe dist
	rm -rf dist/isoaxis
	mkdir dist/isoaxis
	ln windows/README-win32.txt \
	windows/glut32.dll \
	windows/glut32.lib \
	windows/isoaxis.exe \
	alfa.dat COPYING README dist/isoaxis
	sh -c "cd dist && zip -r9 isoaxis-win32-x86.zip isoaxis"
	rm -rf dist/isoaxis


windows/$(PROGRAM).exe:
	@echo "Please build windows/$(PROGRAM).exe from a Windows host"

dist-bin: dist
	rm -rf dist/isoaxis
	mkdir dist/isoaxis
	#strip $(PROGRAM)
	ln $(PROGRAM) alfa.dat COPYING README dist/isoaxis
	sh -c "cd dist && tar cpf - isoaxis | gzip -9 > isoaxis-$(ARCH).tar.gz"
	rm -rf dist/isoaxis


FILES= \
isoaxis_ogl/README \
isoaxis_ogl/Makefile \
isoaxis_ogl/COPYING \
isoaxis_ogl/alfa.dat \
isoaxis_ogl/main.c \
isoaxis_ogl/fmath.h \
isoaxis_ogl/fmath.c \
isoaxis_ogl/prim.h \
isoaxis_ogl/world.c \
isoaxis_ogl/porting/cf_darwin.make \
isoaxis_ogl/porting/cf_solcc.make \
isoaxis_ogl/porting/cf_irix6.make \
isoaxis_ogl/porting/cf_solgcc.make \
isoaxis_ogl/porting/cf_linux.make \
isoaxis_ogl/porting/cf_tru64.make \
isoaxis_ogl/porting/cf_.make \
isoaxis_ogl/local.h \
isoaxis_ogl/local.c \
isoaxis_ogl/prefs.c \
isoaxis_ogl/prefs.h \
isoaxis_ogl/gmenu.h \
isoaxis_ogl/camera.h \
isoaxis_ogl/camera.c \
isoaxis_ogl/jscrsave.c \
isoaxis_ogl/light.h \
isoaxis_ogl/primogl.c \
isoaxis_ogl/ogllight.c \
isoaxis_ogl/alfa.h \
isoaxis_ogl/fullscreen_stereo.h \
isoaxis_ogl/fullscreen_stereo.c \
isoaxis_ogl/isoaxis.c \
isoaxis_ogl/version.h \
isoaxis_ogl/points.h \
isoaxis_ogl/points.c \
isoaxis_ogl/glutint.h \
isoaxis_ogl/getopt.c \
isoaxis_ogl/isoaxis.dsw \
isoaxis_ogl/isoaxis.dsp \
isoaxis_ogl/windows/GL/glut.h \
isoaxis_ogl/windows/isoaxis.rc \
isoaxis_ogl/windows/glut32.lib \
isoaxis_ogl/windows/glut32.dll \
isoaxis_ogl/windows/README-win32.txt \
isoaxis_ogl/IsoAxis.bin \
isoaxis_ogl/IsoAxis_Mac.h



$(BACKUP):
	sh -c "cd .. && tar -cpf - $(FILES) | gzip -9 > isoaxis_ogl/dist/isoaxis-1.0.tar.gz"

dist-src: $(BACKUP)


# DO NOT DELETE THIS LINE -- make depend depends on it.

world.o: prefs.h points.h local.h prim.h
isoaxis.o: points.h fmath.h
fmath.o: points.h fmath.h alfa.h
camera.o: points.h camera.h
main.o: fullscreen_stereo.h prefs.h gmenu.h version.h points.h prim.h
main.o: camera.h light.h local.h
points.o: points.h
prefs.o: prefs.h gmenu.h version.h
primogl.o: prim.h points.h
ogllight.o: prim.h light.h points.h camera.h
local.o: points.h prefs.h light.h local.h
jscrsave.o: prefs.h
fullscreen_stereo.o: fullscreen_stereo.h
