# Makefile for Unix Squeak; author: Ian Piumarta (ian.piumarta@inria.fr)

# the name of the resulting virtual machine

VM=		SqueakVM

# libraries, compiler, flags
#
# CC and LD should point to the programs used for compiling and linking,
# respectively (both of these will normally be 'cc' or 'gcc').
#
# CCFLAGS and LDFLAGS should contain any extra flags needed by your
# compiler or linker, respectively.  For example, on the newer Sparcs
# (such as the UltraSparc) you can improve interpreter performance 
# by including "-mv8" in CCFLAGS when using gcc.
#
# LIBS should contain any '-L' and '-l' flags required for your
# architecture (e.g. some Sparc machines will have to specify
# -L/usr/openwin/lib).  At the very least this will contain '-lX11'.
#
# INCLUDE should contain any '-I' flags required (e.g. some Sparc machines
# will have to specify "-I/usr/openwin/include" here ).

CC=		gcc
LD=		gcc
CCFLAGS=	-O2 -funroll-loops -g 
LDFLAGS=
LIBS=		-lX11 -lm
INCLUDE=	-I/usr/X11R6/include

# top-level targets -- default is to build just the VM

all:		$(VM)
utilities:	lf2cr

# the files comprising the VM

SRC=		InterpTestInline.c \
		sqFilePrims.c sqSoundPrims.c \
		sqUnixDirectory.c sqUnixJoystick.c sqUnixSound.c \
		sqXWindow.c
HDR=		sq.h sqUnixConfig.h

OBJ=		$(SRC:.c=.o)

# extra stuff that goes in the tar file when moving things around

TAR=		InterpTest.c Makefile cr2lf.c cgsix.c \
		Squeak*.image Squeak*.changes Squeak*.sources \
		*.cs README

# rules and regulations...

$(VM):		$(OBJ)
		$(LD) $(LDFLAGS) -o $@ $(OBJ) $(LIBS)

.c.o:
		$(CC) $(CCFLAGS) $(INCLUDE) -c $<

# utilities

lf2cr:		cr2lf
		ln -s cr2lf lf2cr

cr2lf:		cr2lf.c
		$(CC) -o cr2lf cr2lf.c

# miscellaneous sundries...

tidy:
		/bin/rm -f *~ core

clean:		tidy
		/bin/rm -f *.o

spotless:	clean
		/bin/rm -f $(VM) cr2lf lf2cr
		makedepend
		makedepend
		/bin/rm -f *.bak

depend:
		makedepend $(INCLUDE) $(SRC) $(HDR)

tar:
		tar cvf sq.tar $(SRC) $(HDR) $(TAR)

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

InterpTestInline.o: sq.h sqUnixConfig.h /usr/include/math.h
InterpTestInline.o: /usr/include/sys/cdefs.h /usr/include/stdio.h
InterpTestInline.o: /usr/include/sys/types.h /usr/include/machine/ansi.h
InterpTestInline.o: /usr/include/machine/types.h
InterpTestInline.o: /usr/include/machine/endian.h /usr/include/stdlib.h
InterpTestInline.o: /usr/include/string.h /usr/include/time.h
InterpTestInline.o: /usr/include/unistd.h /usr/include/sys/unistd.h
sqFilePrims.o: sq.h sqUnixConfig.h /usr/include/math.h
sqFilePrims.o: /usr/include/sys/cdefs.h /usr/include/stdio.h
sqFilePrims.o: /usr/include/sys/types.h /usr/include/machine/ansi.h
sqFilePrims.o: /usr/include/machine/types.h /usr/include/machine/endian.h
sqFilePrims.o: /usr/include/stdlib.h /usr/include/string.h
sqFilePrims.o: /usr/include/time.h /usr/include/unistd.h
sqFilePrims.o: /usr/include/sys/unistd.h
sqSoundPrims.o: sq.h sqUnixConfig.h /usr/include/math.h
sqSoundPrims.o: /usr/include/sys/cdefs.h /usr/include/stdio.h
sqSoundPrims.o: /usr/include/sys/types.h /usr/include/machine/ansi.h
sqSoundPrims.o: /usr/include/machine/types.h /usr/include/machine/endian.h
sqSoundPrims.o: /usr/include/stdlib.h /usr/include/string.h
sqSoundPrims.o: /usr/include/time.h /usr/include/unistd.h
sqSoundPrims.o: /usr/include/sys/unistd.h
sqUnixDirectory.o: sq.h sqUnixConfig.h /usr/include/math.h
sqUnixDirectory.o: /usr/include/sys/cdefs.h /usr/include/stdio.h
sqUnixDirectory.o: /usr/include/sys/types.h /usr/include/machine/ansi.h
sqUnixDirectory.o: /usr/include/machine/types.h /usr/include/machine/endian.h
sqUnixDirectory.o: /usr/include/stdlib.h /usr/include/string.h
sqUnixDirectory.o: /usr/include/time.h /usr/include/unistd.h
sqUnixDirectory.o: /usr/include/sys/unistd.h /usr/include/dirent.h
sqUnixDirectory.o: /usr/include/sys/dirent.h /usr/include/sys/param.h
sqUnixDirectory.o: /usr/include/sys/syslimits.h /usr/include/sys/signal.h
sqUnixDirectory.o: /usr/include/machine/signal.h /usr/include/machine/trap.h
sqUnixDirectory.o: /usr/include/machine/param.h /usr/include/machine/limits.h
sqUnixDirectory.o: /usr/include/sys/stat.h /usr/include/sys/time.h
sqUnixJoystick.o: sq.h sqUnixConfig.h /usr/include/math.h
sqUnixJoystick.o: /usr/include/sys/cdefs.h /usr/include/stdio.h
sqUnixJoystick.o: /usr/include/sys/types.h /usr/include/machine/ansi.h
sqUnixJoystick.o: /usr/include/machine/types.h /usr/include/machine/endian.h
sqUnixJoystick.o: /usr/include/stdlib.h /usr/include/string.h
sqUnixJoystick.o: /usr/include/time.h /usr/include/unistd.h
sqUnixJoystick.o: /usr/include/sys/unistd.h
sqUnixSound.o: sq.h sqUnixConfig.h /usr/include/math.h
sqUnixSound.o: /usr/include/sys/cdefs.h /usr/include/stdio.h
sqUnixSound.o: /usr/include/sys/types.h /usr/include/machine/ansi.h
sqUnixSound.o: /usr/include/machine/types.h /usr/include/machine/endian.h
sqUnixSound.o: /usr/include/stdlib.h /usr/include/string.h
sqUnixSound.o: /usr/include/time.h /usr/include/unistd.h
sqUnixSound.o: /usr/include/sys/unistd.h
sqXWindow.o: sq.h sqUnixConfig.h /usr/include/math.h /usr/include/sys/cdefs.h
sqXWindow.o: /usr/include/stdio.h /usr/include/sys/types.h
sqXWindow.o: /usr/include/machine/ansi.h /usr/include/machine/types.h
sqXWindow.o: /usr/include/machine/endian.h /usr/include/stdlib.h
sqXWindow.o: /usr/include/string.h /usr/include/time.h /usr/include/unistd.h
sqXWindow.o: /usr/include/sys/unistd.h /usr/include/sys/time.h
sqXWindow.o: /usr/include/sys/param.h /usr/include/sys/syslimits.h
sqXWindow.o: /usr/include/sys/signal.h /usr/include/machine/signal.h
sqXWindow.o: /usr/include/machine/trap.h /usr/include/machine/param.h
sqXWindow.o: /usr/include/machine/limits.h /usr/include/errno.h
sq.o: sqUnixConfig.h /usr/include/math.h /usr/include/sys/cdefs.h
sq.o: /usr/include/stdio.h /usr/include/sys/types.h
sq.o: /usr/include/machine/ansi.h /usr/include/machine/types.h
sq.o: /usr/include/machine/endian.h /usr/include/stdlib.h
sq.o: /usr/include/string.h /usr/include/time.h /usr/include/unistd.h
sq.o: /usr/include/sys/unistd.h
