147 lines
5.3 KiB
Makefile
147 lines
5.3 KiB
Makefile
##############################################################################
|
|
# These are the programs to be installed (fxlib is the library).
|
|
##############################################################################
|
|
INSTALL_PROGS = fxp fxcanon fxcopy fxesis fxviz fxlib
|
|
|
|
##############################################################################
|
|
# These are the locations for executables, heap images and library files
|
|
##############################################################################
|
|
PREFIX = /cygdrive/d/xml
|
|
FXP_BINDIR = ${PREFIX}/bin
|
|
FXP_LIBDIR = ${PREFIX}/fxp
|
|
|
|
##############################################################################
|
|
# The path where the SML-NJ binaries are located, and the name of the
|
|
# SML-NJ executable with the Compilation manager built-in. If sml is in
|
|
# your PATH at execution time, you fon't need the full path here.
|
|
##############################################################################
|
|
SML_BINDIR = /cygdrive/d/smlnj-110.43/bin
|
|
SML_EXEC = ${SML_BINDIR}/sml
|
|
##############################################################################
|
|
# No need to change this for SML-NJ 110.0.6. For earlier or working versions
|
|
# 110.19 you might have to use the second or third line. This is the
|
|
# compilation manager function for making with a named description file.
|
|
##############################################################################
|
|
#SML_MAKEDEF= val make = CM.make'
|
|
SML_MAKEDEF= val make = CM.make
|
|
#SML_MAKEDEF= fun make x = CM.make'{force_relink=true, group=x}
|
|
|
|
##############################################################################
|
|
# These should be fine on most unix machines
|
|
##############################################################################
|
|
SED = sed
|
|
RM = rm -f
|
|
RMDIR = rmdir
|
|
COPY = cp -f
|
|
CHMOD = chmod
|
|
FIND = find
|
|
#buggy in cygwin
|
|
#MKDIRHIER = mkdirhier
|
|
MKDIRHIER = mkdir -p
|
|
|
|
##############################################################################
|
|
# nothing to change below this line
|
|
##############################################################################
|
|
SRC = src
|
|
DOC = doc
|
|
FXLIB_PRUNE = \( -name CM -o -name CVS -o -name Apps \)
|
|
|
|
all: fxp.sh images
|
|
|
|
arch.os:
|
|
if test -s ${SML_BINDIR}/.arch-n-opsys; then\
|
|
${SML_BINDIR}/.arch-n-opsys | \
|
|
${SED} -e 's/^.*HEAP_SUFFIX=\(.*\)$$/\1/' > .arch-opsys;\
|
|
else \
|
|
echo "ARCH=x86; OPSYS=win32; HEAP_SUFFIX=x86-win32" | \
|
|
${SED} -e 's/^.*HEAP_SUFFIX=\(.*\)$$/\1/' > .arch-opsys;\
|
|
fi
|
|
|
|
fxp.sh: Makefile arch.os
|
|
${RM} fxp.sh
|
|
echo "#!/bin/sh -f" > fxp.sh
|
|
echo >> fxp.sh
|
|
echo "SML_BINDIR=${SML_BINDIR}" >> fxp.sh
|
|
echo "FXP_LIBDIR=${FXP_LIBDIR}" >> fxp.sh
|
|
cat fxp.sh.in >> fxp.sh
|
|
|
|
image.prog:
|
|
@echo "Creating the ${PROG_NAME} heap image..."
|
|
echo "${SML_MAKEDEF}; make \"${SRC}/${PROG_CM}\"; \
|
|
SMLofNJ.exportFn(\"${SRC}/_${PROG_NAME}\",${PROG_FUN})" | ${SML_EXEC}
|
|
|
|
image.fxlib:
|
|
image.fxp:
|
|
@make image.prog PROG_NAME=fxp PROG_CM=Apps/Null/null.cm PROG_FUN=Null.null
|
|
image.fxcanon:
|
|
@make image.prog PROG_NAME=fxcanon PROG_CM=Apps/Canon/canon.cm PROG_FUN=Canon.canon
|
|
image.fxcopy:
|
|
@make image.prog PROG_NAME=fxcopy PROG_CM=Apps/Copy/copy.cm PROG_FUN=Copy.copy
|
|
image.fxesis:
|
|
@make image.prog PROG_NAME=fxesis PROG_CM=Apps/Esis/esis.cm PROG_FUN=Esis.esis
|
|
image.fxviz:
|
|
@make image.prog PROG_NAME=fxviz PROG_CM=Apps/Viz/viz.cm PROG_FUN=Viz.viz
|
|
|
|
images:
|
|
for prog in ${INSTALL_PROGS}; do \
|
|
make image.$${prog}; \
|
|
done
|
|
|
|
inst.dirs:
|
|
test -d ${FXP_BINDIR} || ${MKDIRHIER} ${FXP_BINDIR}
|
|
test -d ${FXP_LIBDIR} || ${MKDIRHIER} ${FXP_LIBDIR}
|
|
|
|
inst.prog: inst.dirs fxp.sh arch.os
|
|
${RM} ${FXP_BINDIR}/${PROG_NAME} ${FXP_BINDIR}/fxp.sh \
|
|
${FXP_LIBDIR}/_${PROG_NAME}.`cat .arch-opsys`
|
|
${COPY} fxp.sh ${FXP_BINDIR}
|
|
${CHMOD} 755 ${FXP_BINDIR}/fxp.sh
|
|
ln -s fxp.sh ${FXP_BINDIR}/${PROG_NAME}
|
|
${COPY} ${SRC}/_${PROG_NAME}.`cat .arch-opsys` ${FXP_LIBDIR}
|
|
${CHMOD} 644 ${FXP_LIBDIR}/_${PROG_NAME}.`cat .arch-opsys`
|
|
|
|
inst.fxp:
|
|
@make inst.prog PROG_NAME=fxp PROG_CM=Apps/Null/null.cm PROG_FUN=Null.null
|
|
inst.fxcanon:
|
|
@make inst.prog PROG_NAME=fxcanon PROG_CM=Apps/Canon/canon.cm PROG_FUN=Canon.canon
|
|
inst.fxcopy:
|
|
@make inst.prog PROG_NAME=fxcopy PROG_CM=Apps/Copy/copy.cm PROG_FUN=Copy.copy
|
|
inst.fxesis:
|
|
@make inst.prog PROG_NAME=fxesis PROG_CM=Apps/Esis/esis.cm PROG_FUN=Esis.esis
|
|
inst.fxviz:
|
|
@make inst.prog PROG_NAME=fxviz PROG_CM=Apps/Viz/viz.cm PROG_FUN=Viz.viz
|
|
|
|
inst.fxlib:
|
|
for dir in `${FIND} ${SRC} ${FXLIB_PRUNE} -prune -o -type d -print`; do \
|
|
${MKDIRHIER} ${FXP_LIBDIR}/$${dir}; \
|
|
done
|
|
for file in `${FIND} ${SRC} ${FXLIB_PRUNE} -prune -o -name '*.sml' -print`; do \
|
|
${COPY} $${file} ${FXP_LIBDIR}/$${file}; \
|
|
done
|
|
${COPY} ${SRC}/fxlib.cm ${FXP_LIBDIR}/${SRC}/fxlib.cm
|
|
rm -f ${FXP_LIBDIR}/fxlib.cm
|
|
echo Group is > ${FXP_LIBDIR}/fxlib.cm
|
|
echo " "${SRC}/fxlib.cm >> ${FXP_LIBDIR}/fxlib.cm
|
|
${COPY} -r ${DOC} ${FXP_LIBDIR}
|
|
|
|
install:
|
|
for prog in ${INSTALL_PROGS}; do \
|
|
make inst.$${prog}; \
|
|
done
|
|
|
|
uninstall: arch.os
|
|
-for prog in ${INSTALL_PROGRAMS}; do \
|
|
if [ "$${prog}" == "fxlib" ]; then \
|
|
${RM} -r ${FXP_LIBDIR/src}; \
|
|
else \
|
|
${RM} ${FXP_BINDIR}/$${prog}; \
|
|
${RM} ${FXP_LIBDIR}/_$${prog}.`cat .arch-opsys`; \
|
|
fi; \
|
|
done
|
|
-${RM} ${FXP_BINDIR}/fxp.sh
|
|
-${RMDIR} ${FXP_BINDIR} ${FXP_LIBDIR}
|
|
|
|
clean:
|
|
-${RM} -f ${SRC}/_fx.* fxp.sh .arch-opsys
|
|
-find ${SRC} -type d -name CM -print | xargs ${RM} -r
|