######################################################################
# Makefile to build Shell 5.10L under Lattice C 5.10
#NOTE: char's are UNSIGNED by default, and the executable's called 'zsh'
# primitive version, even LMK should be able to cope with this

#FLAGS	= OPTTIME NOSTKCHK NODEBUG    STRMERGE PARMS=REG UNSCHAR MCCONS
FLAGS	= OPTTIME NOSTKCHK DEBUG=LINE          PARMS=REG UNSCHAR MCCONS
OPTIM	=
GSTFILE	= cshell.gst
DEST	= zsh
#OPTIM	= OPTIMIZE
SRCS	= run.c main.c comm1.c comm2.c comm3.c execom.c set.c sub.c globals.c rawcon.c syms.c hypdoc.c
HDRS	= proto.h shell.h
OBJS	= run.o main.o comm1.o comm2.o comm3.o execom.o set.o sub.o globals.o rawcon.o
CC	= sc

# OPTSIZE   = short code optimize      NOSTKCHK  = no stack overflow check
# NODEBUG   = no debug info            UNSCHAR   = unsigned chars by default
# STRMERGE  = one copy per string      CPU=68030 = code for 68030
# GST=...   = read precompiled header  NOOBJNAME MAKEGST=... = write precompiled header
# PARMS=REG = register arguments       ND        = strip debug information

# added [AMK]:
# MCCONS    = allow multi-char const   OPTTIME   = optimize time

zsh: $(OBJS)
	slink FROM lib:cres.o $(OBJS) LIB lib:scm.lib lib:sc.lib TO $(DEST).ld NOICONS
	slink FROM $(DEST).ld TO $(DEST) NOICONS NODEBUG
	@protect $(DEST)    add p quiet
	@protect $(DEST).ld add p quiet

$(GSTFILE): shell.h proto.h
	@-avail flush
	$(CC) UNSCHAR NOOBJNAME MAKEGST=$(GSTFILE) syms.c

comm1.o: comm1.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) comm1.c
comm2.o: comm2.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) comm2.c
comm3.o: comm3.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) comm3.c
execom.o: execom.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) execom.c
globals.o: globals.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) globals.c
main.o: main.c $(GSTFILE)
	$(CC) $(FLAGS) GST=$(GSTFILE) main.c
rawcon.o: rawcon.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) rawcon.c
run.o: run.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) run.c
set.o: set.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) set.c
sub.o: sub.c $(GSTFILE)
	$(CC) $(FLAGS) $(OPTIM) GST=$(GSTFILE) sub.c

install:
	@echo "Installing Cshell ..."
	@copy $(DEST)    csh:csh    clone
	@copy $(DEST).ld csh:csh.ld clone

clean:
	@echo "Cleaning up working directory ..."
	@-delete $(GSTFILE) $(OBJS) $(DEST) $(DEST).ld quiet >nil:
	@-avail flush >nil:

beta:
	@echo "Making beta version ..."
	@-delete cshbeta.lha cshsrc.lha quiet >nil:
	lha -a a cshbeta.lha csh:csh csh:csh.doc csh:History csh:Readme
	lha -a a cshsrc.lha $(SRCS) $(HDRS) smakefile

rel:
	@echo "Making release version ..."
	@-delete csh.lha cshs.lha quiet >nil:
	@csh -c touch sernum
	@eval `type sernum` + 1 >sernumtmp
	@delete sernum quiet
	@rename sernumtmp sernum
	@copy csh:csh.ld csh:csh csh:release`type sernum` clone quiet
	lha -a a csh.lha csh:csh csh:csh.doc History.Txt\
		csh:csh-reference.guide csh:README csh:HISTORY\
		"amigaguide/*" .DisplayMe csh:demo.sh csh:menu.sh\
		csh:overview.doc csh:feedback.doc csh:tips.doc\
		csh:class.sh
	lha -a a cshs.lha $(SRCS) $(HDRS) smakefile technotes.doc

