#!/bin/csh 
#$Header:lispconf 12.0$
#$ACIS:lispconf 12.0$
#
# csh script to configure lisp
# use:
#	lispconf type
# where type is one of
#    vax_4_1 vax_4_1a vax_4_1c vax_eunice_vms
#    sun_4_1c sun_unisoft dual_unisoft pixel_unisoft
#
if ($#argv == 1) then
  set argument = $argv[1]
else  
  set argument = junk
endif

#fix makefile
sed "s%^RootDir = .*%RootDir = `pwd`%" Makefile > Make$$
mv Make$$ Makefile < /dev/null

switch ($argument)
 case vax_eunice_vms:
	mv franz/vax/{Makefile,Make.unix}
	mv franz/vax/{Make.vms,Makefile}
 case vax_4_1:
 case vax_4_1a:
 case vax_4_1c:
 case vax_4_2:
 case sun_4_1c: 
 case sun_unisoft:
 case dual_unisoft:
 case pixel_unisoft:
	echo "/* this file created by ../../lispconf */" > franz/h/lconf.h
	echo "#define $argv[1] 1" >> franz/h/lconf.h
	rm -f franz/h/{aout,lispo}.h
	cp /usr/include/a.out.h franz/h/aout.h
	cp /usr/include/a.out.h franz/h/lispo.h
	breaksw
 default:
  echo "use: lispconf type"
  echo "  where type is one of "
  echo "  vax_4_1 vax_4_1a vax_4_1c vax_4_2"
  echo "  vax_eunice_vms"
  echo "  sun_4_1c sun_unisoft dual_unisoft pixel_unisoft"
  exit 1
endsw 

set ifusft=""
switch ($argument)
 case vax_*:
	set VAX mach="vax"
	(echo vax ucbstd; cat Makefile) | awk -f cvt.awk > Make$$
	mv Make$$ Makefile < /dev/null
	breaksw
 case *_unisoft:
	set ifusft="unisoft"
 case sun_4_*: 
	set M68K mach="68k"
	(echo 68k $ifusft; cat Makefile) | awk -f cvt.awk > Make$$
	mv Make$$ Makefile < /dev/null
	breaksw
endsw 

# for the 68k version of the lisp compiler
# The type of makefile built depends of the type of 68k
#  system you have.  We assume that sun's have virtual memory
#  and that dual/unisoft's have no vm (thus, define swapper).
# As long as we are checking to see if we are dealing with
# a 68000 unisoft machine; make some patches to the C part as well.
if ($?M68K) then
	switch ($argument)
	 case *_unisoft:
		(echo swapper unisoft;\
		    cat liszt/68k/Makefile) |awk -f cvt.awk > Make$$
		(echo unisoft;\
		    cat franz/68k/Makefile) |awk -f cvt.awk > franz/68k/Make$$
		rm -f franz/h/{lispo,aout}.h
		cp franz/h/duallispo.h franz/h/lispo.h
		cp franz/h/dualaout.h franz/h/aout.h
		cp franz/h/hpagsiz.h franz/h/pagsiz.h
		cp lisplib/autorun/unisoft lisplib/autorun/68k
		breaksw
	 case sun_4_1c:
		(echo sun; cat liszt/68k/Makefile) | awk -f cvt.awk > Make$$
		(echo sun; cat franz/68k/Makefile)\
				| awk -f cvt.awk > franz/68k/Make$$
		cp lisplib/autorun/sun4.2 lisplib/autorun/68k
		breaksw
	endsw
	rm -f liszt/68k/Makefile
	sed "s%^RootDir = .*%RootDir = `pwd`%" Make$$ > liszt/68k/Makefile
	rm -f Make$$
	rm -f franz/68k/Makefile
	mv franz/68k/Make$$ franz/68k/Makefile

	if ($ifusft/x == unisoft/x) then
		switch ($argument)
		 case sun_unisoft:
			set OFFSET=0x8000
			breaksw
		 case dual_unisoft:
			set OFFSET=0x800000
			breaksw
		 case pixel_unisoft:
			set OFFSET=0x20000
			breaksw
		endsw
		sed "s%^OFFSET = .*%OFFSET = $OFFSET%"\
				lisplib/autorun/68k > temp$$
		mv temp$$ lisplib/autorun/68k </dev/null
	endif
endif
