depend : ${OBJDIR} ${DEPENDS}

## Define some of the specific recipes.

.IF ${DEPEND} != ${NULL}
${DEPEND} :
	${CC} -nomulti -nodebug -notrace ${CCFLAGS} -M ${LIBSRC} ${LIBSRC1} ${MODSRC} | sed 's%\([^.]*\)\.o% ${OBJDIR}/\1.o%' > $@
.END

.IF ${DEPEND-D} != ${NULL}
${DEPEND-D} :
	${CC} -nomulti -debug -notrace ${CCFLAGS} -M ${LIBSRC-D} ${LIBSRC1-D} ${MODSRC-D} | sed 's%\([^.]*\)\.o% ${OBJDIR}/\1-d.o%' > $@
.END

.IF ${DEPEND-D-T} != ${NULL}
${DEPEND-D-T} :
	${CC} -nomulti -debug -trace ${CCFLAGS} -M ${LIBSRC-D-T} ${LIBSRC1-D-T} ${MODSRC-D-T} | sed 's%\([^.]*\)\.o% ${OBJDIR}/\1-d-t.o%' > $@
.END

.IF ${DEPEND-M} != ${NULL}
${DEPEND-M} :
	${CC} -multi -nodebug -notrace ${CCFLAGS} -M ${LIBSRC-M} ${LIBSRC1-M} ${MODSRC-M} | sed 's%\([^.]*\)\.o% ${OBJDIR}/\1-m.o%' > $@
.END

.IF ${DEPEND-M-D} != ${NULL}
${DEPEND-M-D} :
	${CC} -multi -debug -notrace ${CCFLAGS} -M ${LIBSRC-M-D} ${LIBSRC1-M-D} ${MODSRC-M-D} | sed 's%\([^.]*\)\.o% ${OBJDIR}/\1-m-d.o%' > $@
.END

.IF ${DEPEND-M-D-T} != ${NULL}
${DEPEND-M-D-T} :
	${CC} -multi -debug -trace ${CCFLAGS} -M ${LIBSRC-M-D-T} ${LIBSRC1-M-D-T} ${MODSRC-M-D-T} | sed 's%\([^.]*\)\.o% ${OBJDIR}/\1-m-d-t.o%' > $@
.END

## Define how to print things.

print :
[
	cpr `ls *.h *.i *.c *.cc *.s Makefile | sort` | sed 1d > cpr.out
	lpr -Pljp_cs -Z2Ld cpr.out
	lpq -Pljp_cs
	${RM} cpr.out
]

## Define how to clean things.

clean :
	${RM} ${CLEAN}

## Define default dependencies and recipes for making object files.

${OBJDIR}/%.o : ${SRCDIR}/%.c
	${CC} ${CCFLAGS} $< -c -o $@

${OBJDIR}/%.o : ${SRCDIR}/%.cc # no multi, no debug, no trace
	${CC} -nomulti -nodebug -notrace ${CCFLAGS} $< -c -o $@

${OBJDIR}/%-d.o : ${SRCDIR}/%.cc # no multi, debug, no trace
	${CC} -nomulti -debug -notrace ${CCFLAGS} $< -c -o $@

${OBJDIR}/%-d-t.o : ${SRCDIR}/%.cc # no multi, debug, trace
	${CC} -nomulti -debug -trace ${CCFLAGS} $< -c -o $@

${OBJDIR}/%-m.o : ${SRCDIR}/%.cc # multi, no debug, no trace
	${CC} -multi -nodebug -notrace ${CCFLAGS} $< -c -o $@

${OBJDIR}/%-m-d.o : ${SRCDIR}/%.cc # multi, debug, no trace
	${CC} -multi -debug -notrace ${CCFLAGS} $< -c -o $@

${OBJDIR}/%-m-d-t.o : ${SRCDIR}/%.cc # multi, debug, trace
	${CC} -multi -debug -trace ${CCFLAGS} $< -c -o $@


## Define default dependencies and recipes for making object files.


${OBJDIR}/%.o : ${SRCDIR}/%.s
	${AS} ${ASFLAGS} $< -o $@

${OBJDIR}/%-d.o : ${SRCDIR}/%.s
	${AS} ${ASFLAGS} $< -o $@

${OBJDIR}/%-d-t.o : ${SRCDIR}/%.s
	${AS} ${ASFLAGS} $< -o $@

${OBJDIR}/%-m.o : ${SRCDIR}/%.s
	${AS} ${ASFLAGS} $< -o $@

${OBJDIR}/%-m-d.o : ${SRCDIR}/%.s
	${AS} ${ASFLAGS} $< -o $@

${OBJDIR}/%-m-d-t.o : ${SRCDIR}/%.s
	${AS} ${ASFLAGS} $< -o $@


## Define default dependencies and recipes for making libraries.


.IF ${LIB} != ${NULL}
${LIB} .LIBRARY : ${LIBOBJ}
[
	${RM} $@
	${AR} $@ ${LIBOBJ}
	${RL} $@
]
.END

.IF ${LIB-D} != ${NULL}
${LIB-D} .LIBRARY : ${LIBOBJ-D}
[
	${RM} $@
	${AR} $@ ${LIBOBJ-D}
	${RL} $@
]
.END

.IF ${LIB-D-T} != ${NULL}
${LIB-D-T} .LIBRARY : ${LIBOBJ-D-T}
[
	${RM} $@
	${AR} $@ ${LIBOBJ-D-T}
	${RL} $@
]
.END

.IF ${LIB-M} != ${NULL}
${LIB-M} .LIBRARY : ${LIBOBJ-M}
[
	${RM} $@
	${AR} $@ ${LIBOBJ-M}
	${RL} $@
]
.END

.IF ${LIB-M-D} != ${NULL}
${LIB-M-D} .LIBRARY : ${LIBOBJ-M-D}
[
	${RM} $@
	${AR} $@ ${LIBOBJ-M-D}
	${RL} $@
]
.END

.IF ${LIB-M-D-T} != ${NULL}
${LIB-M-D-T} .LIBRARY : ${LIBOBJ-M-D-T}
[
	${RM} $@
	${AR} $@ ${LIBOBJ-M-D-T}
	${RL} $@
]
.END

#----------------------------------------------------------

.IF ${LIB1} != ${NULL}
${LIB1} .LIBRARY : ${LIBOBJ1}
[
	${RM} $@
	${AR} $@ ${LIBOBJ1}
	${RL} $@
]
.END

.IF ${LIB1-D} != ${NULL}
${LIB1-D} .LIBRARY : ${LIBOBJ1-D}
[
	${RM} $@
	${AR} $@ ${LIBOBJ1-D}
	${RL} $@
]
.END

.IF ${LIB1-D-T} != ${NULL}
${LIB1-D-T} .LIBRARY : ${LIBOBJ1-D-T}
[
	${RM} $@
	${AR} $@ ${LIBOBJ1-D-T}
	${RL} $@
]
.END

.IF ${LIB1-M} != ${NULL}
${LIB1-M} .LIBRARY : ${LIBOBJ1-M}
[
	${RM} $@
	${AR} $@ ${LIBOBJ1-M}
	${RL} $@
]
.END

.IF ${LIB1-M-D} != ${NULL}
${LIB1-M-D} .LIBRARY : ${LIBOBJ1-M-D}
[
	${RM} $@
	${AR} $@ ${LIBOBJ1-M-D}
	${RL} $@
]
.END

.IF ${LIB1-M-D-T} != ${NULL}
${LIB1-M-D-T} .LIBRARY : ${LIBOBJ1-M-D-T}
[
	${RM} $@
	${AR} $@ ${LIBOBJ1-M-D-T}
	${RL} $@
]
.END


## Define how to make directories.


${BINDIR} ${OBJDIR} ${LIBDIR} ${INSTALLINCDIR} ${INSTALLOBJDIR} ${INSTALLBINDIR} ${INSTALLLIBDIR} : 
	mkdir $@


## Everything depends on the make file.


.IF ${LIBOBJ} != ${NULL}
${LIBOBJ} : Makefile
.END

.IF ${LIBOBJ-D} != ${NULL}
${LIBOBJ-D} : Makefile
.END

.IF ${LIBOBJ-D-T} != ${NULL}
${LIBOBJ-D-T} : Makefile
.END

.IF ${LIBOBJ-M} != ${NULL}
${LIBOBJ-M} : Makefile
.END

.IF ${LIBOBJ-M-D} != ${NULL}
${LIBOBJ-M-D} : Makefile
.END

.IF ${LIBOBJ-M-D-T} != ${NULL}
${LIBOBJ-M-D-T} : Makefile
.END

.IF ${LIBOBJ1} != ${NULL}
${LIBOBJ1} : Makefile
.END

.IF ${LIBOBJ1-D} != ${NULL}
${LIBOBJ1-D} : Makefile
.END

.IF ${LIBOBJ1-D-T} != ${NULL}
${LIBOBJ1-D-T} : Makefile
.END

.IF ${LIBOBJ1-M} != ${NULL}
${LIBOBJ1-M} : Makefile
.END

.IF ${LIBOBJ1-M-D} != ${NULL}
${LIBOBJ1-M-D} : Makefile
.END

.IF ${LIBOBJ1-M-D-T} != ${NULL}
${LIBOBJ1-M-D-T} : Makefile
.END

.IF ${MODOBJ} != ${NULL}
${MODOBJ} : Makefile
.END

.IF ${MODOBJ-D} != ${NULL}
${MODOBJ-D} : Makefile
.END

.IF ${MODOBJ-D-T} != ${NULL}
${MODOBJ-D-T} : Makefile
.END

.IF ${MODOBJ-M} != ${NULL}
${MODOBJ-M} : Makefile
.END

.IF ${MODOBJ-M-D} != ${NULL}
${MODOBJ-M-D} : Makefile
.END

.IF ${MODOBJ-M-D-T} != ${NULL}
${MODOBJ-M-D-T} : Makefile
.END


## Define how to make final executables and libraries.


.IF ${INSTALLBINDIR} != ${NULL}
${INSTALLBINDIR}/% : ${BINDIR}/%
	${INSTALL} $< $@
.END

.IF ${INSTALLLIBDIR} != ${NULL}
${INSTALLLIBDIR}/% : ${LIBDIR}/%
	${INSTALL} $< $@ && ${RL} $@
.END

.IF ${INSTALLLIBDIR} != ${NULL}
${INSTALLLIBDIR}/% : ${OBJDIR}/%
	${INSTALL} $< $@
.END

.IF ${INSTALLINCDIR} != ${NULL}
${INSTALLINCDIR}/% : ${SRCDIR}/%
	${INSTALL} $< $@
.END
