# home for all commands
BINDIR=/bin/
DOSBINDIR=\bin
# CFLAGS=-dDEBUG +1
# small model library path
CLIB=-l/clibs/c
# source files for shell
shsrc=main.c cp.c fexecvp.c more.c cmds.c chmod.c y.c \
ls.c fgrep.c mv.c pwd.c rm.c dump2.c \
savestr.c stdsave.c _croot.c env.c fexecv.c cat.c \
cmdlist.c mvcp.c dirfuncs.c prerror.c misc.c

shasm=fexec.asm ctlbrk.asm

# object files for shell
shobj=main.o cp.o fexecvp.o more.o cmds.o chmod.o y.o fexec.o \
ls.o fgrep.o mv.o pwd.o rm.o dump2.o \
savestr.o stdsave.o _croot.o env.o fexecv.o cat.o \
cmdlist.o ctlbrk.o mvcp.o dirfuncs.o prerror.o misc.o

lint : $(shsrc)
	lint shell.lnt >lint.out
main.c : main.s
	statecom main
main.lnt : main.c
	lint -u -i/include/ -e527 -e10 -e720 -e715 +fsa +fvo +fzu \
/include/stdlib -dMAIN $*.c >$@

cmds.lnt : cmds.c
	lint -u -i/include/ -e720 +fsa +fvo +fzu /include/stdlib -dMAIN $*.c >$@
#
# make shell - check currency of all percursors, link and then move to
# bin directory
#
shell.com : $(shobj) 
	ln -t -o $@ -f shell.lnk
	chmod +w $(BINDIR)$@
	mv $@ $(BINDIR)$@
	chmod -w $(BINDIR)$@

shell.doc : c:/docs/shell.nro
	nro /docs/shell.nro >shell.doc
#
# make a release package
# the obj directory is a child of the current working directory
release :
	-copy obj\*.o
	-del obj\*.o
	make shell.com
	make shell.doc
	mv *.o obj
	rm *.bak *.sym *.map lint.out
	copy $(DOSBINDIR)\shell.com
	command /c if exist \lbr\shell.arc arc f /lbr/shell.arc *.*
	command /c if not exist \lbr\shell.arc arc a /lbr/shell.arc *.*
	-del shell.com
nosource :
	make shell.com
	arc a /lbr/shellns.arc /bin/shell.com shell.doc
shell.exe : $(shobj) 
	ln -t -o $@ -f shell.lnk
	\\atron\\aztoat <shell.sym >shell.map

#
# make entries to produce stand-alone versions of shell builtins
#
chmod.com : croot.o
	cc -dMAIN $*
	ln -o $@ $*.o croot.o -l/clibs/s -l/clibs/c
	rm $*.o
	chmod +w $(BINDIR)$@
	mv $@ $(BINDIR)$@
	chmod -w $(BINDIR)$@

chmod.lnt :
	lint -u -i/include/ -e720 +fsa +fvo +fzu /include/stdlib -dMAIN $*.c >$@

fgrep.lnt :
	lint -u -i/include/ -e720 +fsa +fvo +fzu /include/stdlib -dMAIN $*.c >$@

fgrep.com : fgrep.o croot.o
	cc -dMAIN $*
	ln -o $@ $*.o croot.o -l/clibs/s -l/clibs/c
	rm $*.o

more.com : 
	cc -dMAIN $*
	ln -o $@ $*.o -l/clibs/s -l/clibs/c
	rm $*.o
	chmod +w $(BINDIR)$@
	mv $@ $(BINDIR)$@
	chmod -w $(BINDIR)$@

more.lnt :
	lint -u -i/include/ -e720 +fsa +fvo +fzu /include/stdlib -dMAIN $*.c >$@

mv.com : croot.o savestr.o mvcp.o
	cc -dMAIN $*
	ln -o $@ $*.o savestr.o croot.o mvcp.o  -l/clibs/c
	rm $*.o
	chmod +w $(BINDIR)$@
	mv $@ $(BINDIR)$@
	chmod -w $(BINDIR)$@

mv.lnt :
	lint -u -i/include/ -e720 +fsa +fvo +fzu /include/stdlib -dMAIN $*.c >$@

cp.com : croot.o savestr.o mvcp.o
	cc -dMAIN $*
	ln -o $@ $*.o savestr.o croot.o  mvcp.o -l/clibs/c
	rm $*.o
	chmod +w $(BINDIR)$@
	mv $@ $(BINDIR)$@
	chmod -w $(BINDIR)$@

cp.lnt :
	lint -u -i/include/ -e720 +fsa +fvo +fzu /include/stdlib -dMAIN $*.c >$@

ls.com : 
	cc -dMAIN $*
	ln -t -o $@ $*.o -l/clibs/c
	rm $*.o
	chmod +w $(BINDIR)$@
	mv $@ $(BINDIR)$@
	chmod -w $(BINDIR)$@

ls.lnt :
	lint -u -i/include/ -e720 +fsa +fvo +fzu /include/stdlib -dMAIN $*.c >$@

editall :
	z $(shsrc)

clean :
	rm *.o *.bak *.sym shell.out
