VERNUM=		38
VERDIR=		/usr/commodore/amiga/V${VERNUM}
ASM=		${VERDIR}/tools/bin/cassem
ASMTAGS=	${VERDIR}/tools/sh/asmtags
ATOM=		${VERDIR}/tools/bin/atom
BCPL=		${VERDIR}/tools/bin/bcpl
BUMPREV=	${VERDIR}/tools/sh/bumprev
CKRCS=		${VERDIR}/tools/sh/ckrcs
LINK=		${VERDIR}/tools/bin/calink
MAKEINCLUDE=	${VERDIR}/tools/bin/makeinclude
MMINSTALL=	${VERDIR}/tools/sh/mminstall
RESETREV=	${VERDIR}/tools/sh/resetrev
REVLABEL=	${VERDIR}/tools/sh/revlabel
STRIPF=		${VERDIR}/tools/bin/stripf
SFDTOOL=	${VERDIR}/tools/bin/sfd
CC=		nmetacc
CTAGS=		ctags
CXTAGS=		${VERDIR}/tools/cxtags
MAKE=		make
SRCPATH=	${VERDIR}/src/${SRCDIRPATH}/${SRCDIR}
#SYSINCL=	${VERDIR}/include.strip
SYSINCLNS=	${VERDIR}/include
#EXTINCL=	${SYSINCL}/${SUBSYSGROUP}
EXTINCLNS=	${SYSINCLNS}/${SUBSYSGROUP}
#INTINCL=	${SYSINCL}/internal
INTINCLNS=	${SYSINCLNS}/internal
LIBDIR=		${VERDIR}/lib
DOCDIR=		${VERDIR}/doc
METAFILE=	${VERDIR}/tools/makemeta
LIBSFD=		${LIBDIR}/sfd
DEPENDFILE=	${SUBSYSNAME}${VERNUM}.depend
LFILES=		${MYLIBS} ${VERDIR}/lib/amiga.lib
RCSFILES=	${AFILES} ${CFILES} ${BFILES} \
		${HFILES} ${IFILES} ${GFILES} \
		${MAKEFILE} ${MISCSRC} ${MISCDOC} ${SUBSYSNAME}_lib.sfd
AINCL=		-i \"${MYINCL} ${SYSINCLNS}\"
CINCL=		-I -I${MYINCL} -I${SYSINCLNS}
SYMBOLOPT=	,S
.SUFFIXES:
.SUFFIXES:	.h .i .sfd .rev .ld .oCm .ocm .obj .c .b .asm
default:
	@echo 'But what do you want to make?'
.INCLUDE=${DEPENDFILE}
.c.obj:
	@echo ${CFLAGS} $<:
	@${CC} -S -X54 -X104 -X106 ${CFLAGS} ${CINCL} $*.c
	@if test "${CAPP}"; then ( \
	    ${CAPP} < $*.asm > $*.asm.TMP; \
	    mv $*.asm.TMP $*.asm; ); \
	else ( if test "${CAPP2}"; then ( \
	    ${CAPP2} < $*.asm > $*.asm.TMP; \
	    mv $*.asm.TMP $*.asm; ); fi; ); fi
	@${ASM} $*.asm -o $*.obj.TMP -c q,a${SYMBOLOPT} ${CAFLAGS}
	@rm -f $*.asm $@
	@mv $@.TMP $@
.b.obj:
	@echo ${BFLAGS} $<:
	@${BCPL} $*.b $*.obj.TMP opt '"${BFLAGS}"' obj a \
		inc \"${MYINCL} ${SYSINCLNS}\"
	@mv $*.obj.TMP $@
.asm.obj:
	@echo $<:
	@if test "${APP}"; \
	    then( \
		${APP} < $< > $*.asm.TMP; \
		${ASM} $*.asm.TMP -o $@.TMP -c q,a${SYMBOLOPT} ${AFLAGS} \
	    		${AINCL}; \
		rm -f $*.asm.TMP; \
	    ); else( \
		${ASM} $*.asm -o $@.TMP -c q,a${SYMBOLOPT} ${AFLAGS} \
	    		${AINCL}; \
		); \
	    fi
	@rm -f $@
	@mv $@.TMP $@
.obj.oCm:
	@echo $<:
	@${ATOM} $*.obj $*.obj.TMP -CCDB
	@mv -f $*.obj.TMP $@
.obj.ocm:
	@echo $<:
	@${ATOM} $*.obj $*.obj.TMP -CDB -PC
	@mv -f $*.obj.TMP $@
.rev.i .rev.h:
	@${BUMPREV} ${VERNUM} $* $?
.sfd.i:
	@echo $@:
	@rm -f $@
	@${SFDTOOL} -i $*.sfd
clean::	${SUBDIRS} ${SUBMAKES}
	rm -f *.obj *.o[cC]m *.ld *.ld.strip *.[cs]rec *TMP[' '0-9] *.lis *.xr0 \
	    *.even *.odd *.CKP *.BAK *.TMP *.TMP? awkvers.* *.with *.depend \
	    *.[csl]map *.cat *.xref core *.lib
	rm -rf TMPD
${SUBSYSNAME}.with with:	${SUBDIRS} ${SUBMAKES} ${MAKEFILE} ${METAFILE}
	@echo ${SUBSYSNAME}.with:
	-@if test -z "${WITH}"; \
	    then( \
	    cat < /dev/null > TMP1; \
	    for i in ${STARTUP} ${FIRSTO} ${OFILES} TMP1 ; do \
		( echo $$i | sed -n -e "/TMP1/!s/$$/,*/p" >> TMP1 ); done; \
	    for i in ${OCMFILES} TMP1 ; do \
		( echo $$i | sed -n -e "/TMP1/!s/$$/,*/p" >> TMP1 ); done; \
	    sed -e "\$$s/,\*$$//" TMP1 > TMP2; \
	    echo "FROM *" > TMP1; \
	    cat TMP1 TMP2 > ${SUBSYSNAME}.with.new; \
	    cat < /dev/null > TMP1; \
	    for i in ${LFILES} TMP1 ; do \
		( echo $$i | sed -n -e "/TMP1/!s/$$/,*/p" >> TMP1 ); done; \
	    sed -e "\$$s/,\*$$//" TMP1 > TMP2; \
	    echo "LIBRARY *" > TMP1; \
	    cat TMP1 TMP2 >> ${SUBSYSNAME}.with.new; \
	    rm -f TMP1 TMP2; \
	    mv -f ${SUBSYSNAME}.with.new ${SUBSYSNAME}.with; \
	    ); \
	    else( \
	    cat ${WITH} > TMP1; \
	    cat TMP1 > ${SUBSYSNAME}.with; \
	    rm -f TMP1 \
	    ); fi
${DEPENDFILE} depend::	${SUBDIRS} ${SUBMAKES}
	@echo ${DEPENDFILE}
	@echo "# DO NOT CHANGE THIS FILE" > ${DEPENDFILE}.new
	@rm -f TMP1
	@${MAKEINCLUDE} -a ${AFILES} TMP1 -i . ${MYINCL} ${SYSINCLNS} | \
	    sed -e "s/\.asm:/.obj:/" > ${DEPENDFILE}.new
	@${MAKEINCLUDE} -c ${CFILES} TMP1 -i . ${MYINCL} ${SYSINCLNS} | \
	    sed -e "s/\.c:/.obj:/" >> ${DEPENDFILE}.new
	-@if test "${FIRSTO}"; \
	    then ( \
	    echo "DEPENDS= \\" >> ${DEPENDFILE}.new; \
	    grep ${FIRSTO} ${DEPENDFILE}.new > TMP1; \
	    sed -e "s/.*://" TMP1 > TMP2; \
	    sed -e "\$$!s/$$/ \\\\/" TMP2 >> ${DEPENDFILE}.new \
	); fi
	@for i in ${OCMFILES} TMP2 ; do \
	    ( echo $$i | sed -n -e \
	    "s/\(.*\)\.\(o[cC]m\)$$/\1.\2:	\1.obj/p" \
	    >> ${DEPENDFILE}.new ); done;
	@echo '# DO NOT ADD DEPENDANCIES HERE!' >> ${DEPENDFILE}.new
	@echo '# THEY WILL BE REMOVED.' >> ${DEPENDFILE}.new
	@rm -f TMP1 TMP2
	@mv -f ${DEPENDFILE}.new ${DEPENDFILE}
headers::	${SUBDIRS} ${SUBMAKES}
	@sh -c 'test -w ${VERDIR}/tools/touchable || \
	    { echo ${VERDIR} not writable ; exit 1; }'
	${MMINSTALL} -s ${EXTINCL} ${EXTINCLNS} ${EXTERNHFILES} ${EXTERNIFILES}
	${MMINSTALL} -s ${INTINCL} ${INTINCLNS} ${INTERNHFILES} ${INTERNIFILES}
	${MMINSTALL} ${LIBSFD} ${SUBSYSNAME}_lib.sfd
internal::	${SUBDIRS} ${SUBMAKES}
	@echo make internal:
	@sh -c 'test -w ${VERDIR}/tools/touchable || \
	    { echo ${VERDIR} not writable ; exit 1; }'
	@sh -c 'test "${SRCDIR}" || { echo no SRCDIR macro defined ; exit 1; }'
	@echo "    making sure everything is checked in..."
	@${CKRCS} ${VERNUM} ${SRCPATH} ${RCSFILES}
	-@if test ! "${LIBNAME}"; then ( \
	    echo "    labelling rcs files..."; \
	    if test -r ${SUBSYSNAME}_rev.rev; then \
		${REVLABEL} ${SRCPATH} V${VERNUM}_`cat ${SUBSYSNAME}_rev.rev` \
		    ${RCSFILES}; \
	    fi \
	); fi
	-@if test ! "${LIBNAME}"; then ( \
	    echo "    copying sources over to server..."; \
	    ${MMINSTALL} ${SRCPATH} ${RCSFILES} \
		${SUBSYSNAME}.lib ${SUBSYSNAME}.ld ${SUBSYSNAME}.ld.strip \
		${SUBSYSNAME}_rev.h ${SUBSYSNAME}_rev.i ${SUBSYSNAME}_rev.rev ${SUBSYSNAME}.info; \
	    echo "    copying includes over to server..."; \
	    ${MMINSTALL} -s ${EXTINCL} ${EXTINCLNS} ${EXTERNHFILES} \
		${EXTERNIFILES}; \
	    ${MMINSTALL} -s ${INTINCL} ${INTINCLNS} ${INTERNHFILES} \
		${INTERNIFILES}; \
	    echo "    copying doc and sfd files over to server..."; \
	    ${MMINSTALL} ${DOCDIR} ${SUBSYSNAME}.doc ; \
	    ${MMINSTALL} ${LIBSFD} ${SUBSYSNAME}_lib.sfd ; \
	    ${MMINSTALL} ${DOCDIR}/Miscdoc ${MISCDOC} \
	); fi
	-@if test "${LIBNAME}"; then ( \
	    echo make internal -- lib/${LIBNAME}/${SRCDIRPATH}/${SRCDIR}; \
	    mkdir ${LIBDIR}/${LIBNAME}/${SRCDIRPATH}/${SRCDIR}; \
	    ${MMINSTALL} \
		${LIBDIR}/${LIBNAME}/${SRCDIRPATH}/${SRCDIR} \
		${RCSFILES} ${SUBSYSNAME}_lib.lib; \
	); fi
print::	${SUBDIRS} ${SUBMAKES}
	    -@for i in ${HFILES} ${IFILES} ${CFILES} ${BFILES} ${GFILES} ; do \
		(echo imprint ${PFLAGS} -2 -O -L -J $$i; \
		imprint ${PFLAGS} -2 -O -L -J $$i); done
	    -@imprintlis ${PFLAGS} -2 -O -L -J ${AFILES}
	    -@if test -r ${SUBSYSNAME}.doc; then \
		(echo imprint ${PFLAGS} -2 -O -L ${SUBSYSNAME}.doc; \
		imprint ${PFLAGS} -2 -O -L ${SUBSYSNAME}.doc); fi
${SUBSYSNAME}_rev.i ${SUBSYSNAME}_rev.h: ${SUBSYSNAME}_rev.rev \
	    ${OFILES} ${OCMFILES} ${DEPENDS}
${SUBSYSNAME}_rev.rev:
	echo 0 > ${SUBSYSNAME}_rev.rev
	chmod 666 ${SUBSYSNAME}_rev.rev
${SUBSYSNAME}.ld ${SUBSYSNAME}.lmap: ${OFILES} ${OCMFILES} ${FIRSTO} \
	    ${LFILES} ${SUBSYSNAME}.with
	@`echo ${LFLAGS} | sed -n -e "s/.*XREF=\([^ 	]*\).*/rm -f \1/p"`
	@`echo ${LFLAGS} | sed -n -e "s/.*MAP=\([^ 	]*\).*/rm -f \1/p"`
	${LINK} with=${SUBSYSNAME}.with ${LFLAGS} to=${SUBSYSNAME}.ld.TMP
	@${STRIPF} ${SUBSYSNAME}.ld.TMP ${SUBSYSNAME}.ld.strip.TMP
	@mv ${SUBSYSNAME}.ld.TMP ${SUBSYSNAME}.ld
	@mv ${SUBSYSNAME}.ld.strip.TMP ${SUBSYSNAME}.ld.strip
	@chmod a+wx ${SUBSYSNAME}.ld ${SUBSYSNAME}.ld.strip
	@`echo ${LFLAGS} | sed -n -e "s/.*XREF=\([^ 	]*\).*/chmod a+w \1/p"`
	@`echo ${LFLAGS} | sed -n -e "s/.*MAP=\([^ 	]*\).*/chmod a+w \1/p"`
${SUBSYSNAME}_lib.lib:	${OFILES} ${OCMFILES} ${FIRSTO}
	rm -f ${SUBSYSNAME}_lib.lib
	cat ${FIRSTO} ${OFILES} ${OCMFILES} > ${SUBSYSNAME}_lib.lib
${SUBSYSNAME}.lib:	${OFILES} ${OCMFILES} ${FIRSTO}
	rm -f ${SUBSYSNAME}.lib
	cat ${FIRSTO} ${OFILES} ${OCMFILES} > ${SUBSYSNAME}.lib
${SUBSYSNAME}.doc:	${SUBSYSNAME}.cat
	@echo ${SUBSYSNAME}.doc
	@rm -f ${SUBSYSNAME}.doc
	autodoc ${DFLAGS} ${SUBSYSNAME}.cat > ${SUBSYSNAME}.doc
	rm -f ${SUBSYSNAME}.cat
${SUBSYSNAME}.cat:	${SUBMAKES} FRC
	@echo ${SUBSYSNAME}.cat
	@rm -f ${SUBSYSNAME}.cat
	@mkdir TMPD
	@for i in ${SUBDIRS} TMPD ; do \
	    ( ( cd $$i; cat /dev/null `ls *.cat`; rm -f *.cat ) \
	    >> ${SUBSYSNAME}.cat ); done
	@cat ${AFILES} ${CFILES} >> ${SUBSYSNAME}.cat
	@rmdir TMPD
cat:	${SUBDIRS} ${SUBMAKES} ${SUBSYSNAME}.cat
hard:	${SUBDIRS} ${SUBMAKES}
	-@if test "${SUBDIRS}" ; \
	then (\
	    for i in ${SUBDIRS} ; do \
		( cd $$i; make hard ); done; \
	); fi
	@imprint -2 -L -Plab Makefile ${IFILES} ${AFILES} ${HFILES} ${CFILES} \
	    ${GFILES} ${BFILES}
tags:	${SUBDIRS} ${SUBMAKES} ${AFILES} ${CFILES} ${HFILES}
	@rm -f tags
	-@if test "${SUBSYSNAME}"; then ( \
	    ${CTAGS} -t -w -a ${CFILES} ${HFILES} >/dev/null; \
	    ${CXTAGS} ${HFILES} 2>/dev/null | sed "s/ /	/" >>tags; \
	    ${ASMTAGS} ${AFILES} >>tags; \
	    mv tags ${SUBSYSNAME}.tags \
	); fi
	@for i in ${SUBDIRS} TMPD ; do ( \
	    if test "$$i" != "TMPD"; then ( \
		sed "s/	/	$$i\//" $$i/tags >$$i.tags; \
		rm -f $$i/*.tags \
	    ); fi \
	); done
	@cat *.tags | sort +0 -1 -u >tags
resetrev:: ${SUBDIRS} ${SUBMAKES}
	@${RESETREV} ${SRCPATH} ${VERNUM} ${SUBSYSNAME}_rev.rev \
		"${SUBDIRS}" ${MAKEFILE}
checklocks:	${SUBDIRS} ${SUBMAKES}
	@checklocks ${AFILES} ${CFILES} ${BFILES} ${IFILES} ${HFILES} \
	    ${GFILES} ${MAKEFILE} ${MISCSRC} /dev/null
TMPD ${SUBMAKES}: FRC
	${MAKE} -f $@ ${MFLAGS} ${MARGS}
TMPD ${SUBDIRS}: FRC
	cd $@; ${MAKE} ${MFLAGS} ${MARGS}
rom:	${SUBSYSNAME}.ld
doc:	${SUBSYSNAME}.doc
FRC: 
