#   Makefile for SWI-prolog version 1.5, Common version for SUN's
#
#   Jan Wielemaker December 6, 1989
#
#   Copyright in the whole and every part of this software is owned  by  the
#   University  of  Amsterdam.   No reproduction of the whole or any part of
#   this software is to be made without the authority of the  University  of
#   Amsterdam.
#
#   Copyright (c) 1989, University of Amsterdam
# 

CC=cc
CFLAGS=
LDFLAGS=
LIBS=-lm -ltermcap

# paths and file names for installation

SYSTEMHOME=/home/research5/wielemak/src/pl1.5
BIN=/usr/local/bin
SYS=pl1.5
DEFSTARTUP=.plrc

STATEBASE=startup
SYSTEMSTATE=$(SYSTEMHOME)/$(STATEBASE)
SYSTEMBIN=$(BIN)/$(SYS)
PB=../boot
BINLIB=libPL.a

# NOTE: pl-wam.o MUST be first to get it into low addresses when using the
# O_ASM_SWITCH flag

OBJ=	pl-wam.o \
	pl-atom.o pl-alloc.o pl-arith.o pl-bag.o pl-comp.o pl-dump.o \
	pl-dwim.o pl-ext.o pl-file.o pl-flag.o pl-fmt.o pl-funct.o \
	pl-gc.o pl-glob.o pl-index.o pl-itf.o pl-list.o pl-load.o \
	pl-modul.o pl-op.o pl-os.o pl-prims.o pl-pro.o pl-proc.o \
	pl-prof.o pl-read.o pl-rec.o pl-setup.o pl-sys.o pl-table.o \
	pl-trace.o pl-util.o pl-wic.o pl-write.o pl-term.o
DEPOBJ=	pl-main.o
DEBUG=
#DEBUG=  /usr/lib/debug/malloc.o

PLINIT=	$(PB)/init.pl
PLBOOT=	$(PB)/syspred.pl $(PB)/toplevel.pl $(PB)/listing.pl \
	$(PB)/edit.pl $(PB)/sort.pl $(PB)/bags.pl $(PB)/apply.pl \
	$(PB)/list.pl $(PB)/writef.pl $(PB)/history.pl $(PB)/portray.pl \
	$(PB)/profile.pl $(PB)/dwim.pl $(PB)/foreign.pl $(PB)/parms.pl \
	$(PB)/autoload.pl

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

PARMS=	-DSYSTEMSTATE=\"$(STATEBASE)\" \
	-DSYSTEMHOME=\"$(SYSTEMHOME)\" \
	-DDEFSTARTUP=\"$(DEFSTARTUP)\"

all:		$(SYS) $(SYSTEMSTATE) pl-bite

lib:		$(BINLIB)

$(SYS):		$(OBJ) $(DEPOBJ)
		$(CC) $(LDFLAGS) -o $(SYS) $(OBJ) $(DEPOBJ) $(DEBUG) $(LIBS)

$(SYSTEMSTATE):	$(PLBOOT) $(PLINIT) Makefile
		./$(SYS) -O -o $@ -b $(PLINIT) -c $(PLBOOT)

$(BINLIB):	$(OBJ)
		rm -f $(BINLIB)
		ar ru $(BINLIB) $(OBJ)
		ranlib $(BINLIB)

pl-main.o:	Makefile pl-main.c pl-main.h
		$(CC) -c $(CFLAGS) $(PARMS) pl-main.c

#pl-wam.o:	pl-wam.s
#		top pl-wam.s -.word
#		$(CC) $(CFLAGS) -c pl-wam.s

pl-funct.o:	pl-funct.ih
pl-atom.o:	pl-funct.ih
pl-dump.o:	gnu/getpagesize.h gnu/unexec.c

pl-funct.ih:	ATOMS
		defatom ATOMS

pl-atom.ih:	ATOMS
		defatom ATOMS

pl-bite:	pl-bite.c
		$(CC) -o pl-bite pl-bite.c

install:	all
		./dump $(SYS) $(BIN)/$(SYS)
		install -c pl-bite $(SYS)

clean:		
		rm -f *.o a.out core

.c.s:
		$(CC) -S $(CFLAGS) $*.c

saber_obj:
		#load $(OBJ) $(DEPOBJ) $(CFLAGS) $(LIBS)


# PCE CONNECTION

PCE=		xpce
OS=		mips-ultrix
PCESTATEBASE=	startup-pce
PCESTATE=	$(SYSTEMHOME)/$(PCESTATEBASE)
PCELIBS=	$(LIBS) -L
PCELIBS=	$(LIBS) -L/dlenv0/root0.mips/usr/lib -lXt -lX11
PCEITF=		../../xpce/pl/$(OS)/pl-pce.o \
		pce-main.o
PCEOBJ=		../../xpce/$(OS)/XPCE.o $(PCEITF)
PCEB=		../../xpce/prolog/boot
PCEBOOT=	$(PCEB)/principal.pl $(PCEB)/util.pl $(PCEB)/debug.pl \
		$(PCEB)/bitmap.pl $(PCEB)/swi.pl $(PCEB)/event_speak.pl

PCEPARMS=	-DSYSTEMSTATE=\"$(PCESTATEBASE)\" \
		-DSYSTEMHOME=\"$(SYSTEMHOME)\" \
		-DDEFSTARTUP=\"$(DEFSTARTUP)\" \
		-DO_LINK_PCE

pce-main.o:	pl-main.c pl-main.h Makefile
		$(CC) -c $(CFLAGS) $(PCEPARMS) -o $@ pl-main.c

pce:		$(PCE) $(PCESTATE)

$(PCE):		$(OBJ) $(PCEOBJ)
		$(CC) $(LDFLAGS) -o $(PCE) $(OBJ) $(PCEOBJ) $(PCELIBS)

$(PCESTATE):	$(PLBOOT) $(PLINIT) $(PCEBOOT) Makefile
		./$(PCE) -O -o $@ -g write_pce_banner -b $(PLINIT) \
		-c $(PLBOOT) $(PCEBOOT)

pce_saber_obj:
		#load $(OBJ) $(PCEITF) $(CFLAGS) $(PCELIBS)


