4.3BSD/usr/lib/lisp/Makefile

# $Header: Makefile,v 1.13 85/03/24 11:18:37 sklower Exp $
#	Makefile for /usr/lib/lisp
# this directory contains the lisp coded portion of the standard 
# lisp system and other useful lisp programs. 
# The command 'make all' insures that all source files are compiled
# The command 'make install' installs these files in the standard
# place (/usr/lib/lisp).  This is only useful of course if the current
# directory is not /usr/lib/lisp.
#
.SUFFIXES: .l.s.o

.l.s:
	${Liszt} -xaqS $*
.l.o:
	${Liszt} -xaq $*

#--- Default paths and programs:
LibDir = /usr/lib/lisp
CopyTo = /dev/null
Liszt = liszt


#--- ReqSrc: required source for building lisp system
#
ReqSrc = charmac.l common0.l common1.l common2.l common3.l toplevel.l \
	syntax.l  macros.l  vector.l array.l pp.l format.l version.l \
	tpl.l fcninfo.l


#--- OtherSrc: other lisp coded library files
OtherSrc = machacks.l loop.l ucifnc.l  ucido.l jkfmacs.l trace.l\
	record.l syscall.l \
	cmumacs.l cmufncs.l fix.l step.l cmufile.l cmutpl.l cmuedit.l \
	structini.l struct.l prof.l hash.l flavorm.l lmhacks.l

LocalSrc = describe.l flavors.l vanilla.l

ReqObj = charmac.o common0.o common1.o common2.o common3.o toplevel.o \
	syntax.o  macros.o  vector.o array.o pp.o format.o version.o \
	tpl.o fcninfo.o

OtherObj = machacks.o loop.o ucifnc.o  ucido.o jkfmacs.o trace.o\
	record.o syscall.o\
	cmumacs.o cmufncs.o fix.o step.o cmufile.o cmutpl.o cmuedit.o \
	struct.o prof.o hash.o flavorm.o lmhacks.o

LocalObj =  describe.o flavors.o vanilla.o

#--- AllSrc: all source files required for lisp system
#		LocalSrc isn't included!
#		Now it is! (SMH@MIT-EMS)

AllSrc = Makefile ReadMe buildlisp.l cmuenv.l fixit.ref \
	${ReqSrc} ${OtherSrc} autorun/vax autorun/unisoft \
	autorun/sun4.2 autorun/mc500 autorun/68k \
	$(LocalSrc)

AllObj = ${ReqObj} ${OtherObj}
    
# all: ${AllObj}

all: ${AllObj} ${LocalObj}

required: ${ReqObj}

DotSSrc = charmac.s common0.s common1.s\
	  common2.s common3.s toplevel.s syntax.s macros.s\
	  vector.s array.s pp.s format.s\
	  version.s tpl.s fcninfo.s

xtra:	${DotSSrc}

fromasm:
	for i in *.s; do echo $$i; ${LibDir}/as $$i; done
#	rm -f *.s


## defstruct should be compiled with a compiled version of itself.
## When a compiled form doesn't exist, structini.l can be used to
## build a struct.o which is close but not exactly what you want.
## Recompiling struct will use struct.o and create the correct struct.o
## 
struct-again:
	${Liszt} -xaq struct

## The three flavor files have dependencies (SMH@MIT-EMS):
flavors.o:	flavorm.o
vanilla.o:	flavors.o

## this will only work if you have an up to date version of ctags which
## understands lisp files.

tags:    ${AllSrc}
	ctags ${AllSrc}

sources: ${AllSrc}

xref:
	lxref ${AllSrc} > xref

echofiles:
	@echo ${ReqSrc} ${OtherSrc}

echorequired:
	@echo ${ReqSrc}

# updatemachine will vcp all objects and source to machine
# named with 'mach' on the command line

updatemachine: ${AllSrc} ${AllObj}
	-vcp -wfq /usr/ucb/lisp /usr/ucb/liszt ${mach}:.
	-vcp -wfq ${AllSrc} ${mach}:/usr/lib/lisp
	-vcp -wfq ${AllObj} ${mach}:/usr/lib/lisp

copysource: ${AllSrc}
	(tar cf - ${AllSrc} | (cd ${CopyTo} ; tar xf -))

copyobjects: ${AllObj}
	(tar cf - ${AllObj} | (cd ${CopyTo} ; tar xf -))

scriptcatall: ${AllSrc}
	@(X=`pwd` ; cd ${CdTo}; scriptcat $$X lisplib ${AllSrc})

scriptcatxtra:
	@(X=`pwd` ; cd ${CdTo}; scriptcat $$X lisplib ${DotSSrc})

as:
	@echo "Grabbing as from /bin"
	cp /bin/as as

nld:
	@echo "Grabbing nld from /bin"
	cp /bin/ld nld

cleanreq:
	-rm -f ${ReqObj}

cleanall:
	-rm -f ${AllObj}

cleanother:
	-rm -f ${OtherObj}

clean: 
	-rm -f *.o 
	-rm -f *.blat 
	-rm -f *.x