#   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=gcc
#CFLAGS= -O -Wall -finline-functions -fomit-frame-pointer
#CFLAGS= -g -Wall -DO_DEBUG
#LDFLAGS=-static
CC=gcc
CFLAGS= -O -DLINUX -Dv7
LDFLAGS=
LIBS=-lm -ltermcap

# paths and file names for installation

SYSTEMHOME=/usr/prolog
BIN=/usr/local/bin
#SYS=pl1.5
SYS=swipl
DEFSTARTUP=.plrc

SYSTEMSTATE=startup
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=\"$(SYSTEMSTATE)\" \
	-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) pl-wam.o
		./$(SYS) -O -o $(SYSTEMSTATE) -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_src:
		#load $(OBJ) $(DEPOBJ) $(CFLAGS) $(LIBS)
