#############################################################################
# Makefile for the Z88 Kernel, i.e. the solvers
#
# This Makefile allows the following switch combination:
#    -DFR_XDOUB and -DFR_XLONG : double and long
#    -DFR_XDOUB and -DFR_XLOLO : double and long long
#    -DFR_XQUAD and -DFR_XLOLO : long double and long long
#    -DFR_XQUAD and -DFR_XLONG : long double and long
# It depends on your your machine what the meaning of long double or double
# and long or long long is. For example: On SGI computers, long double
# features 128 Bit floats, long long is 64 Bit integers. However, instead
# of using long longs you may operate this programs with 64-Bit longs, too.
# SGI compilers allow the switch -64. Exchange -n32 against -64 if desired.     
#
# Warning: Some functions are used by both the solvers and the other
# Z88 programs. So, if you use -DFR_XQUAD here and -DFR_DOUB for the other
# files, you may confuse the linker! It is a good idea to remove any "old"
# object files from former compiler runs. Here's the big idea:
# make -f z88.mk.kernel.sgi clean kernel
#  
# 3.2.2004 Rieg
#############################################################################

CC = gcc
CFLAGS = -mcpu=i486 -I. -DFR_UNIX -DFR_XDOUB -DFR_XLONG -O3 -fomit-frame-pointer

LDLIBSOX = -lm -lc 

OBJECTSF = z88f.o ale88f.o dyn88f.o clr88.o choy88.o m1.o m2.o stop88f.o\
 cshe88.o hexa88.o lqua88.o qshe88.o isod88.o tetr88.o spur88.o \
 apla88.o spla88.o hpla88.o ri188.o rw2y88f.o who88f.o wlog88f.o \
 wrim88f.o wria88f.o lan88f.o z88a.o z88b.o z88cc.o  

OBJECTSI1 = z88i1.o ale88i.o dyn88i1.o clr88.o w4y88i.o stop88i.o ri188i.o\
 who88i1.o wlog88i1.o wrim88i.o wria88i.o lan88i1.o z88ai.o

OBJECTSI2 = z88i2.o ale88i.o dyn88i2.o clr88.o jaco88.o m1.o m2.o stop88i.o\
 cshe88.o hexa88.o lqua88.o qshe88.o isod88.o tetr88.o spur88.o\
 apla88.o  spla88.o hpla88.o r4y88i.o r1y88i.o who88i2.o wlog88i2.o\
 wrim88i.o lan88i2.o z88bi.o z88ci.o

HEADERF = z88f.h
HEADERI = z88i.h

kernel: z88f z88i1 z88i2

clean:
	rm -f *.o

z88f: $(OBJECTSF)
	$(CC) -o $@ $(OBJECTSF) $(LDLIBSOX)

z88i1: $(OBJECTSI1)
	$(CC) -o $@ $(OBJECTSI1) $(LDLIBSOX)

z88i2: $(OBJECTSI2)
	$(CC) -o $@ $(OBJECTSI2) $(LDLIBSOX)
