# 
# 
# rcsid('$Author: pleuk $',
# 	'$Date: 1993/04/26 16:17:14 $',
# 	'$Revision: 1.0 $',
# 	'$Source: /usr/export/home/projects/ltg2/Pleuk/Distribution/Pleuk/Code/RCS/Makefile,v $',
# 	'$State: Exp $').
# 
# $Log: Makefile,v $
# Revision 1.0  1993/04/26  16:17:14  pleuk
# Version 1.00beta from Jo
#
# Revision 0.11  1992/04/16  12:54:52  pleuk
# revisions from SLE - April 1992
#
# Revision 0.10  1992/01/23  15:39:19  pleuk
# revisions from Jo - January 1992
#
# Revision 0.9  1991/10/21  12:53:20  pleuk
# revisions up to SLE visit 10 October 1991
#
# Revision 0.8  1991/09/25  12:52:34  pleuk
# revisions up to SLE tape 27 September 1991
#
# Revision 0.7  1991/09/21  02:30:57  pleuk
# version for Jo
#
# Revision 0.6  1991/09/02  11:53:58  pleuk
# revisions up to SLE visit 20 August 1991
#
# Revision 0.5  1991/07/15  10:06:10  pleuk
# *** empty log message ***
#
# Revision 0.2  1991/07/15  09:35:41  pleuk
# > revisions up to SLE visit 11-12 July 1991
#
# Revision 0.1  1991/03/06  12:28:08  pleuk
# Initialization of RCS.  State is basically that at the time of the
# DYANA review 1991
#
# 
# 
# 
# Makefile for the Pleuk Functional Backbone

GENERALMAKEFILE = ../Makefile.defs

include ${GENERALMAKEFILE}

# File that contains information derived from the configuration file

PLEUKINFO = pleukinfo.${SPEC}.out

# PROLOGFILECALL symbol to proceed goals to be called within a file

PROLOGFILECALL = ":-"

BOOTFILE = pboot.pl
BOOTSCRIPT = bootscript

# How we load the specialization


FOREIGN = ${PLEUKCDIR}/${PROLOGTYPE}.pl

GENERICFILES = ${PROLOGTYPE}-${PROLOGVERS}.pl \
	pleuklibrary.pl pvariables.pl penvironment.pl \
	psys.pl ${OS}.pl pio.pl pbanners.pl \
	${OUTPUTSCREENS}windows.pl
	


CONFIGUREFILES = pconfigure.pl 

RUNTIMEFILES = 	pfiles.pl \
		pdatabase.pl \
		pruntime.pl \
		pgenericargs.pl \
		pbanners.pl \
		pdump.pl \
		pprinting.pl \
		pparser.pl \
		pread_in.pl \
		pwindows.pl \
		pcounter.pl \
		pmessages.pl \
		ppostscript.pl \
		pstreams.pl \
		pstream_filters.pl \
		pdumb_filter.pl \
		pmenutty.pl \
		pmenux.pl \
		pmenuvars.pl \
		pmenudefs.pl \
		pdc.pl \
		pgmviews.pl



# We are aiming to produce a saved stated with the same name as
# SPEC in the saved state directory. 

TARGET = ${PLEUKSAVE}/${SPEC}


${TARGET}: ${RUNTIMEFILES} ${BOOTSCRIPT} ${PLEUKINFO} ${SPECCODE}
	@echo building ${SPEC}
	( echo 'consult(bootscript).'; \
	  echo "eccs_install('${PLEUKINFO}', '${TARGET}', save)." ;\
	echo "halt." ) | \
	${PROLOGPATH}

spec: 
	(cd ..; make SPEC=${SPEC})



${PLEUKINFO}: ${CONFIGUREFILES} ${PLEUKCDIR}/foreign  ${BOOTSCRIPT} ${CONFIGURE}
	@echo configuring ${SPEC}
	(cat ${BOOTSCRIPT}; \
	 echo ":- eccs_pleuk_build('${CONFIGURE}', '${PLEUKINFO}')." ) | ${PROLOGPATH} 

######################################################################
#
# We run pboot.pl through sed to fix the value of a bunch of local 
# variables
#
######################################################################

SEDPROG = -e s@BACKBONECOMPILEMODE@${BACKBONECOMPILEMODE}@g \
	 -e s@PLEUKCOMPILEMODE@${PLEUKCOMPILEMODE}@g \
	 -e s@PROLOGTYPE@${PROLOGTYPE}@g \
	 -e s@PROLOGVERS@${PROLOGVERS}@g \
	 -e s@PLEUKVERSION@${PLEUKVERSION}@g \
	 -e s@WINDOWS@${WINDOWS}@g \
	 -e s@PLEUKDIR@${PLEUKHOME}@g\
	 -e s@DOIT@${PROLOGFILECALL}@g \
	 -e s@OPERATINGSYSTEM@${OS}@g \
	 -e s@INPUTMENUS@${INPUTMENUS}@g \
	 -e s@OUTPUTSCREENS@${OUTPUTSCREENS}@g 

fb_code: bootscript 

${BOOTSCRIPT}: Makefile  ${GENERALMAKEFILE} ${BOOTFILE}
	sed ${SEDPROG} < ${BOOTFILE} > ${BOOTSCRIPT}


all: new

new: realclean ${PLEUKINFO} ${PLEUKSAVE}/${PROGRAM}


clean:  
	
realclean: clean
	rm -f *.ql
	rm -f bootscript; 
	rm -f pleukinfo.*.out


${PLEUKCDIR}/foreign:
	(cd C; ${MAKE}  PLEUKHOME=${PLEUKHOME} all);
	touch ${PLEUKCDIR}/foreign

prolog_objects:
	@for file in ${GENERICFILES} ${CONFIGUREFILES} ${RUNTIMEFILES}; \
	do \
	    make `basename $$file .pl`.ql; \
	done
