
.SUFFIXES:
.SUFFIXES: .fn .o .c .lsp



PORTDIR	= ../unixport
CAT=cat

OBJS	= arraylib.o assert.o defmacro.o defstruct.o describe.o evalmacros.o \
	iolib.o listlib.o mislib.o module.o numlib.o packlib.o predlib.o \
	seq.o seqlib.o setf.o top.o trace.o sloop.o debug.o info.o



COMPILE_FILE=$(PORTDIR)/saved_gcl $(PORTDIR) -system-p -c-file -data-file \
	-o-file nil -h-file -compile
CFLAGS	= -c -O -I../h 

.lsp.c: 
	@ ../xbin/if-exists $(PORTDIR)/saved_gcl \
	"rm -f $*.c $*.h $*.data $*.o" \
	"$(COMPILE_FILE) $* "

.lsp.o: 
	 @ ../xbin/if-exists $(PORTDIR)/saved_gcl \
	"rm -f $*.c $*.h $*.data $*.o" \
	"$(COMPILE_FILE) $* " \
	"$(CC) $(OFLAG) $(CFLAGS) $*.c " \
	"../xbin/append ${NULLFILE} $*.data $*.o "

# begin makedefs
GCLDIR=/d/wfs/gcl-2.0
SHELL=/bin/sh
MACHINE=386-linux
TK_LIBRARY=/usr/lib/tk
X11_INCLUDE_DIR=-I/usr/include
TK_INCLUDE_DIR=-I/usr/include/tcl
TK_LIBS=-L/usr/lib -ltk
TCL_LIBS=-L/usr/lib -ltcl
X11_LIBS=-L/usr/X11/lib -lX11
EMACS_SITE_LISP=/usr/lib/emacs/site-lisp
INFO_DIR=/usr/info

# Machine dependent makefile definitions for intel 386,486 running linux
# If using gnu libc, use version >= 4.21

LBINDIR=/usr/local/bin

OFLAG	=  -O 
LIBS	= -lm 
ODIR_DEBUG= -O4 

# This CC string will be used for compilation of the system,
# and also in the compiler::*cc* variable for later compilation of
# lisp files.
# (the -pipe is just since our file system is slow..)
CC = gcc -pipe -fwritable-strings  -DVOL=volatile -I$(GCLDIR)/o 
LDCC=${CC} -static 

# Enable the fastloading mechanism which does not use ld -A
# requires c/rel_.. machine dependent code.

RSYM	= rsym
SFASL	= $(ODIR)/sfasl.o

#  Use the mp.s file on 68k machine 

# new gcc doesn't make a good .s file using optimisations.
# so either use $(MPDIR)/mpi.o   $(MPDIR)/libmport.a
#MPFILES= $(MPDIR)/mpi-386.o   $(MPDIR)/libmport.a

MPFILES= $(MPDIR)/mpi-386d.o   $(MPDIR)/libmport.a


# When using SFASL it is good to have (si::build-symbol-table)
INITFORM=(si::build-symbol-table)

# Use symbolic links
SYMB=-s

LIBFILES=bsearch.o

# the  make to use for saved_kcp the profiler.
KCP=kcp-bsd

# dont add the .data 
CAT=true
# end makedefs















all:	$(OBJS)



.c.o:
	$(CC) $(OFLAG) $(CFLAGS) $*.c
	$(CAT) ${NULLFILE} $*.data >> $*.o

.lsp.fn: ../cmpnew/collectfn.o
	../xbin/make-fn $*.lsp

all:	$(OBJS)

fns1:	$(FNS)

fns:	../cmpnew/collectfn.o
	make fns1 -e "FNS=`echo ${OBJS} | sed -e 's:\.o:\.fn:g'`"

../cmpnew/collectfn.o: ../cmpnew/collectfn.lsp
	(cd ../cmpnew ; $(PORTDIR)/saved_gcl $(PORTDIR)/ collectfn.lisp collectfn S1000)


clean:
	rm -f *.o core a.out
allclean:
	rm -f *.h *.data *.c

dummy3 $(NEWCFILES): sys-proclaim.lisp

sys-proclaim.lisp:
	echo '(in-package "SYSTEM")' \
	'(load "../cmpnew/collectfn")'\
	'(compiler::make-all-proclaims "*.fn")' | ../xbin/gcl


newc:	
	make $(OBJS) -e "NEWCFILES=`echo $(OBJS) | sed -e 's:\.o:.c:g'`"


