head	1.40;
access;
symbols
	RELEASE_8_3_0:1.39
	RELEASE_9_0_0:1.39
	RELEASE_7_4_0:1.39
	RELEASE_8_2_0:1.39
	RELEASE_6_EOL:1.39
	RELEASE_8_1_0:1.39
	RELEASE_7_3_0:1.39
	RELEASE_8_0_0:1.38
	RELEASE_7_2_0:1.38
	RELEASE_7_1_0:1.38
	RELEASE_6_4_0:1.38
	RELEASE_5_EOL:1.36
	RELEASE_7_0_0:1.36
	RELEASE_6_3_0:1.36
	PRE_XORG_7:1.34
	RELEASE_4_EOL:1.34
	RELEASE_6_2_0:1.33
	RELEASE_6_1_0:1.32
	RELEASE_5_5_0:1.32
	RELEASE_6_0_0:1.31
	RELEASE_5_4_0:1.30
	RELEASE_4_11_0:1.30
	RELEASE_5_3_0:1.27
	RELEASE_4_10_0:1.26
	RELEASE_5_2_1:1.24
	RELEASE_5_2_0:1.24
	RELEASE_4_9_0:1.24
	RELEASE_5_1_0:1.22
	RELEASE_4_8_0:1.21
	RELEASE_5_0_0:1.20
	RELEASE_4_7_0:1.19
	RELEASE_4_6_2:1.17
	RELEASE_4_6_1:1.17
	RELEASE_4_6_0:1.17
	RELEASE_5_0_DP1:1.17
	RELEASE_4_5_0:1.15
	RELEASE_4_4_0:1.13
	RELEASE_4_3_0:1.11
	RELEASE_4_2_0:1.11
	RELEASE_4_1_1:1.11
	RELEASE_4_1_0:1.11
	RELEASE_3_5_0:1.11
	RELEASE_4_0_0:1.9
	RELEASE_3_4_0:1.9
	RELEASE_3_3_0:1.9
	RELEASE_3_2_0:1.6
	RELEASE_3_1_0:1.6
	RELEASE_2_2_8:1.4
	RELEASE_3_0_0:1.2
	RELEASE_2_2_7:1.2
	v110:1.1.1.1
	JKOSHY:1.1.1;
locks; strict;
comment	@# @;


1.40
date	2012.11.17.05.58.57;	author svnexp;	state Exp;
branches;
next	1.39;

1.39
date	2009.11.28.00.57.44;	author miwi;	state Exp;
branches;
next	1.38;

1.38
date	2008.07.27.00.26.24;	author edwin;	state Exp;
branches;
next	1.37;

1.37
date	2008.07.27.00.23.58;	author edwin;	state Exp;
branches;
next	1.36;

1.36
date	2007.09.02.05.48.54;	author jkoshy;	state Exp;
branches;
next	1.35;

1.35
date	2007.08.27.15.41.18;	author jkoshy;	state Exp;
branches;
next	1.34;

1.34
date	2006.11.29.17.46.37;	author jkoshy;	state Exp;
branches;
next	1.33;

1.33
date	2006.06.10.12.47.00;	author jkoshy;	state Exp;
branches;
next	1.32;

1.32
date	2006.01.31.16.09.52;	author jkoshy;	state Exp;
branches;
next	1.31;

1.31
date	2005.06.02.08.08.41;	author jkoshy;	state Exp;
branches;
next	1.30;

1.30
date	2004.12.20.15.42.42;	author jkoshy;	state Exp;
branches;
next	1.29;

1.29
date	2004.12.05.11.26.48;	author jkoshy;	state Exp;
branches;
next	1.28;

1.28
date	2004.11.15.09.16.14;	author jkoshy;	state Exp;
branches;
next	1.27;

1.27
date	2004.08.29.15.00.35;	author jkoshy;	state Exp;
branches;
next	1.26;

1.26
date	2004.02.04.05.21.43;	author marcus;	state Exp;
branches;
next	1.25;

1.25
date	2004.01.22.11.06.00;	author trevor;	state Exp;
branches;
next	1.24;

1.24
date	2003.08.15.07.29.03;	author jkoshy;	state Exp;
branches;
next	1.23;

1.23
date	2003.07.09.18.42.36;	author marcus;	state Exp;
branches;
next	1.22;

1.22
date	2003.03.30.00.48.14;	author jkoshy;	state Exp;
branches;
next	1.21;

1.21
date	2003.02.21.12.35.07;	author knu;	state Exp;
branches;
next	1.20;

1.20
date	2002.11.22.11.17.31;	author jkoshy;	state Exp;
branches;
next	1.19;

1.19
date	2002.07.19.09.56.59;	author jkoshy;	state Exp;
branches;
next	1.18;

1.18
date	2002.06.09.07.00.07;	author jkoshy;	state Exp;
branches;
next	1.17;

1.17
date	2002.03.26.08.58.34;	author jkoshy;	state Exp;
branches;
next	1.16;

1.16
date	2002.01.29.11.24.09;	author knu;	state Exp;
branches;
next	1.15;

1.15
date	2002.01.14.06.49.06;	author jkoshy;	state Exp;
branches;
next	1.14;

1.14
date	2001.12.20.08.56.37;	author jkoshy;	state Exp;
branches;
next	1.13;

1.13
date	2001.08.24.09.12.29;	author jkoshy;	state Exp;
branches;
next	1.12;

1.12
date	2001.06.18.10.34.11;	author jkoshy;	state Exp;
branches;
next	1.11;

1.11
date	2000.05.29.06.27.16;	author jkoshy;	state Exp;
branches;
next	1.10;

1.10
date	2000.04.12.06.20.41;	author obrien;	state Exp;
branches;
next	1.9;

1.9
date	99.08.25.06.35.27;	author obrien;	state Exp;
branches;
next	1.8;

1.8
date	99.08.22.23.32.55;	author mharo;	state Exp;
branches;
next	1.7;

1.7
date	99.08.22.18.58.55;	author mharo;	state Exp;
branches;
next	1.6;

1.6
date	99.02.02.04.18.52;	author jkoshy;	state Exp;
branches;
next	1.5;

1.5
date	99.02.02.03.52.32;	author jkoshy;	state Exp;
branches;
next	1.4;

1.4
date	98.11.22.04.46.10;	author jkoshy;	state Exp;
branches;
next	1.3;

1.3
date	98.11.20.08.14.12;	author jkoshy;	state Exp;
branches;
next	1.2;

1.2
date	98.07.20.07.56.58;	author jkoshy;	state Exp;
branches;
next	1.1;

1.1
date	98.07.15.10.05.42;	author jkoshy;	state Exp;
branches
	1.1.1.1;
next	;

1.1.1.1
date	98.07.15.10.05.42;	author jkoshy;	state Exp;
branches;
next	;


desc
@@


1.40
log
@Switch exporter over
@
text
@# New ports collection makefile for: sml/nj
# Date created:        7 July 1998
# Whom:                jkoshy
#
# $FreeBSD: head/lang/sml-nj-devel/Makefile 300896 2012-07-14 13:54:48Z beat $
#

PORTNAME=	smlnj
PORTVERSION=	110.71
CATEGORIES=	lang
MASTER_SITES=	http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/ \
		ftp://mirror.free.de/http/smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/
PKGNAMESUFFIX=	-devel
DISTFILES=	config.tgz runtime.tgz
DIST_SUBDIR=	sml-nj/${PORTVERSION}
EXTRACT_ONLY=	config.tgz

MAINTAINER=	joemann@@beefree.free.de
COMMENT=	A popular functional language from Bell Labs

NO_WRKSUBDIR=	yes
USE_GMAKE=	yes

ONLY_FOR_ARCHS=	i386

OPTIONS=	EVERYTHING "install everything from the SML/NJ distribution" off \
		RECOMPILE  "recompile the SML compiler - implies EVERYTHING" off \
		POSITION64 "use 64bit fi""le positions - implies RECOMPILE"  off

SUB_FILES=	pkg-install
SUB_LIST=	EXEBINDIR=${MLBINRELATIVE} EXENAMES="${MLEXE}"
PKGDEINSTALL=	${PKGINSTALL}

.include <bsd.port.pre.mk>

.if (${ARCH} == "i386")
MLARCH=		x86
DISTFILES+=	boot.x86-unix.tgz
#.elif (${ARCH} == "alpha")
#MLARCH=		alpha32
#DISTFILES+=	boot.alpha32-unix.tgz
.endif
DISTFILES+=	MLRISC.tgz ckit.tgz cml.tgz heap2asm.tgz ml-lpt.tgz \
		ml-lex.tgz ml-yacc.tgz smlnj-lib.tgz trace-debug-profile.tgz

PLIST_SUB=	MLARCH=${MLARCH}

.if defined(WITH_POSITION64)
WITH_RECOMPILE?=	${WITH_POSITION64}
CMB_COMMAND=	'(\#set o CMB.symval) "USE_64_BIT_POSITIONS" (SOME 1);'
.else
CMB_COMMAND=
.endif

.if defined(WITH_RECOMPILE)
WITH_EVERYTHING?=	${WITH_RECOMPILE}
.endif

.if defined(WITH_EVERYTHING)
DISTFILES+=	cm.tgz compiler.tgz eXene.tgz ml-burg.tgz \
		nlffi.tgz pgraph.tgz smlnj-c.tgz system.tgz
.endif

MLROOTRELATIVE=	smlnj
MLROOT=		${PREFIX}/${MLROOTRELATIVE}
MLBINRELATIVE=	${MLROOTRELATIVE}/bin
MLBIN=		${MLROOT}/bin
MLLIB=		${MLROOT}/lib
MLSTDSRCDIRS=	cml heap2asm ml-lex ml-lpt ml-yacc smlnj-lib
MLSRCDIRS=	base ${MLSTDSRCDIRS} \
		ckit eXene ml-burg nlffi pgraph smlnj-c
MLSRCS=
.for srcdir in ${MLSRCDIRS}
MLSRCS+=	${MLROOT}/${srcdir}
.endfor
MLTARGETS=	heap2asm
MLEXE=		heap2exec ml-antlr ml-build ml-lex ml-makedepend \
		ml-ulex ml-yacc sml
.if defined(WITH_EVERYTHING)
MLTARGETS+=	eXene ml-burg ml-nlffi-lib ml-nlffigen \
		mlrisc-tools nowhere pgraph-util src-smlnj
MLEXE+=		ml-burg ml-nlffigen nowhere
PLIST=		${WRKDIR}/.PLIST
MLRUNTIMEPLIST=	${WRKDIR}/.PLIST-runtime
MLSRCPLIST=	${WRKDIR}/.PLIST-src
MLPLISTFILES=	${.CURDIR}/pkg-plist ${FILESDIR}/plist-everything \
		${MLRUNTIMEPLIST} ${MLSRCPLIST}
.endif

pre-fetch:
	@@${ECHO}
.if !defined(WITH_EVERYTHING)
	@@${ECHO} 'Use make WITH_EVERYTHING=yes to also build/install'
	@@${ECHO} ' eXene (X Windows toolkit),'
	@@${ECHO} ' ml-burg (tree transformer),'
	@@${ECHO} ' ml-nlffi (foreign function interface to C code),'
	@@${ECHO} ' nowhere (preprocessor for conditional patterns),'
	@@${ECHO} ' various libraries, and all the sources.'
.endif
.if !defined(WITH_RECOMPILE)
	@@${ECHO} 'Use make WITH_RECOMPILE=yes to recompile the compiler.'
	@@${ECHO} ' This implies WITH_EVERYTHING.'
.endif
.if !defined(WITH_POSITION64)
	@@${ECHO} 'Use make WITH_POSITION64=yes to use 64bit file positions.'
	@@${ECHO} ' This implies WITH_RECOMPILE.'
.endif
	@@${ECHO}

# make symlinks to the dist files

post-extract:
	cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/* .

# Configuring is done by uncommenting the appropriate #request xxx
# lines of config/targets. Dependency details are handled by
# base/system/smlnj/installer using config/dependencies and
# config/actions.

do-configure:
.if defined(MLTARGETS)
	${ECHO_CMD} -n > "${WRKDIR}/.tmp.sed"
.for t in ${MLTARGETS}
	${ECHO_CMD} '/^#request[ 	]+${t}$$/s/^#//' >> "${WRKDIR}/.tmp.sed"
.endfor
	${SED} -i .default -E -f "${WRKDIR}/.tmp.sed" "${WRKDIR}/config/targets"
.endif
# Recompilation requires ml-lex and ml-yacc. All requested targets
# will be built later using the recompiled core system after
# removing targets.customized. See "do-build" below.
.if defined(WITH_RECOMPILE)
	( ${ECHO_CMD} "request	ml-yacc" && \
	  ${ECHO_CMD} "request	ml-lex" && \
	  ${ECHO_CMD} "request	ml-lex-mllex-tool" && \
	  ${ECHO_CMD} "request	src-smlnj" ) \
	> "${WRKDIR}/config/targets.customized"
.endif

# The build target patches, builds, and installs the system within WRKDIR.
# base/runtime is not cleaned afterwards to avoid its recompilation during
# a subsequent make install.
# See base/system/README for information on recompiling the compiler.

.if defined(WITH_RECOMPILE)
RECOMPILEDIR=	base/system
.else
RECOMPILEDIR=
.endif

MLRUNTIMEPATCHES_CMD=	cd ${FILESDIR} && \
			( ${LS} do-patch-base_runtime_* 2>&- || \
			  ${TRUE} )
MLSTANDARDPATCHES_CMD=	cd ${FILESDIR} && \
			( for srcdir in ${MLSTDSRCDIRS} ; \
			  do ${LS} do-patch-$${srcdir}_* 2>&- ; \
			  done ) || ${TRUE}
MLSTANDARDPATCHDIRS_CMD=	cd ${FILESDIR} && \
			( for srcdir in ${MLSTDSRCDIRS} ; \
			  do if ${LS} do-patch-$${srcdir}_* 1>&- 2>&- ; \
			     then ${ECHO_CMD} -n $${srcdir} " " ; break ; fi ; \
			  done ) || ${TRUE}
.if defined(WITH_EVERYTHING)
MLSOURCEPATCHES_CMD=	cd ${FILESDIR} && \
			( ${LS} do-patch-* 2>&- || \
			  ${TRUE} )
.else
MLSOURCEPATCHES_CMD=	${TRUE}
.endif

do-build:
	cd ${WRKDIR} && unset PWD && \
	FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
	MLNORUNTIMECLEAN=yes \
	MLRUNTIMEPATCHES=`${MLRUNTIMEPATCHES_CMD}` \
	MLSTANDARDPATCHES=`${MLSTANDARDPATCHES_CMD}` \
	MLSTANDARDPATCHDIRS=`${MLSTANDARDPATCHDIRS_CMD}` \
	MLSOURCEPATCHES=`${MLSOURCEPATCHES_CMD}` \
	./config/install.sh
.if defined(WITH_RECOMPILE)
	-${RM} ${WRKDIR}/config/targets.customized
	@@${ECHO} '(* Recompiling the core system: *)'
	cd ${WRKDIR}/${RECOMPILEDIR} && ( \
	${ECHO_CMD} 'CM.autoload "$$smlnj/cmb.cm";' ; \
	${ECHO_CMD} ${CMB_COMMAND} ; \
	${ECHO_CMD} 'CMB.make ();' ) | \
	../../bin/sml
	@@${ECHO} '(* Building the recompiled heap: *)'
	cd ${WRKDIR}/${RECOMPILEDIR} && \
	./makeml
	@@${ECHO} '(* Removing old libs and heaps: *)'
	cd ${WRKDIR}/${RECOMPILEDIR} && \
	${RM} -rf ../../lib && ${MKDIR} ../../lib && \
	${FIND} ../../bin/.heap -name '*.${MLARCH}-bsd' \
	\! -name 'sml.${MLARCH}-bsd' -delete -print
	@@${ECHO} '(* Installing the recompiled libs and heap: *)'
	cd ${WRKDIR}/${RECOMPILEDIR} && \
	./installml
	@@${ECHO} '(* Building requested targets: *)'
	cd ${WRKDIR} && unset PWD && \
	FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
	MLNORUNTIMECLEAN=yes RECOMPILEDIR="${RECOMPILEDIR}" \
	./config/install.sh
.endif

# Nowadays PLIST has to be computed before installation. We do it in
# "pre-install" because source extraction happens during "build".

.if defined(WITH_EVERYTHING)
MLNOINSTALL=	.cm
.if defined(WITH_RECOMPILE)
MLNOINSTALL+=	sml.bin.${MLARCH}-unix sml.boot.${MLARCH}-unix \
		sml.lib sml.${MLARCH}-bsd
.endif
MLSRCEXCLUDEREGEX=	-e '^(@@dirrm\ )?${MLROOTRELATIVE}/base/runtime'
.for excl in ${MLNOINSTALL}
MLSRCEXCLUDEREGEX+=	-e '/${excl}$$' -e '/${excl}/'
.endfor
MLPATCHPATHREGEX=	-E -e 's%(^|[^_])_([^_]|$$)%\1/\2%g' \
			   -e 's%(^|[^_])__([^_]|$$)%\1_\2%g' \
			   -e 's%(^|[^_])___([^_]|$$)%\1/_\2%g'

pre-install:
	@@${ECHO} -n '(* Computing package list ...'
	@@${TAR} -tzf ${WRKDIR}/runtime.tgz | \
	${SED} -E -e 's%^(.*[^/])$$%${MLROOTRELATIVE}/base/\1%' \
		-e 's%^(.*)/$$%@@dirrm\ ${MLROOTRELATIVE}/base/\1%' \
		> ${MLRUNTIMEPLIST}
	`${MLRUNTIMEPATCHES_CMD}` | \
	${SED} ${MLPATCHPATHREGEX} | \
	${SED} -E -e 's%^do-patch-(base/.*)%${MLROOTRELATIVE}/\1.orig%' \
	>> ${MLRUNTIMEPLIST}
	@@cd "${WRKDIR}" && ( \
	( ${FIND} -s -d ${MLSRCDIRS} \! -type d | \
	${AWK} '{ print "${MLROOTRELATIVE}/" $$0 }' ) ; \
	( ${FIND} -s -d ${MLSRCDIRS} -type d -empty | \
	${AWK} '{ print "@@exec mk""dir -p %D/${MLROOTRELATIVE}/" $$0 }' ) ; \
	( ${FIND} -s -d ${MLSRCDIRS} -type d | \
	${AWK} '{ print "@@dirrm ${MLROOTRELATIVE}/" $$0 }' ) ) | \
	${EGREP} -v ${MLSRCEXCLUDEREGEX} > ${MLSRCPLIST}
	@@${GREP} -h "^[^@@]" ${MLPLISTFILES} | ${SORT} -u > ${PLIST}
	@@${GREP} -h "^@@exec mk""dir" ${MLPLISTFILES} | ${SORT} -u >> ${PLIST}
	@@${GREP} -h "^@@dirrm" ${MLPLISTFILES} | ${SORT} -r -u >> ${PLIST}
	@@${ECHO} ' done. *)'
.endif

# The install target installs the heaps and libraries to their final
# location in ${MLBIN} and ${MLLIB}.
# In case of recompilation, installml installs the sml heap and the
# libraries built during compiler bootstrap to ${MLBIN} and ${MLLIB}.

.if defined(WITH_EVERYTHING)
MLSRCEXCLUDES=
.for excl in ${MLNOINSTALL}
MLSRCEXCLUDES+=	--exclude "${excl}"
.endfor
.endif

do-install:
	${MKDIR} "${MLROOT}"
.if !defined(WITH_RECOMPILE)
	cd ${WRKDIR} && unset PWD && \
	FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
	INSTALLDIR="${MLROOT}" ./config/install.sh
.else
	@@${ECHO} '(* Rebuilding the recompiled libs: *)'
	cd ${WRKDIR}/${RECOMPILEDIR} && ( \
	${ECHO_CMD} 'CM.autoload "$$smlnj/cmb.cm";' ; \
	${ECHO_CMD} ${CMB_COMMAND} ; \
	${ECHO_CMD} 'CMB.make ();' ) | \
	../../bin/sml
	@@${ECHO} '(* Rebuilding the recompiled heap: *)'
	cd ${WRKDIR}/${RECOMPILEDIR} && \
	./makeml
	@@${ECHO} '(* Installing into ${MLROOT}: *)'
	cd ${WRKDIR} && unset PWD && \
	FILESDIR="${FILESDIR}" PATCH="${PATCH}" PATCH_ARGS="${PATCH_ARGS}" \
	INSTALLDIR="${MLROOT}" RECOMPILEDIR="${RECOMPILEDIR}" \
	./config/install.sh
.endif
	MLARCHOPSYS=`${MLBIN}/.arch-n-opsys` && \
	( eval $${MLARCHOPSYS} ; \
	${STRIP_CMD} "${MLBIN}/.run/run.$${ARCH}-$${OPSYS}" )
	@@${CHOWN} -R ${BINOWN}:${BINGRP} "${MLBIN}" "${MLLIB}"
.if defined(WITH_EVERYTHING)
	@@${ECHO} '(* Cleaning base/runtime: *)'
	cd ${WRKDIR}/base/runtime/objs && ${GMAKE} clean
	@@${ECHO} -n '(* Installing sources into ${MLROOT} ...'
	@@cd ${WRKDIR} && ${TAR} -cf - ${MLSRCEXCLUDES} ${MLSRCDIRS} | \
	${TAR} -xf - -C "${MLROOT}"
	@@${CHOWN} -R ${SHAREOWN}:${SHAREGRP} ${MLSRCS}
	@@${ECHO} ' done. *)'
.endif

post-install:
	PKG_PREFIX=${PREFIX} MULTIEXEC_WRAPPER_VERBOSE=yes \
	${SH} ${PKGINSTALL} ${PKGNAME} POST-INSTALL

.ifndef MULTIEXEC_WRAPPER_VERBOSE
deinstall:
	export MULTIEXEC_WRAPPER_VERBOSE=yes && \
	cd ${.CURDIR} && ${MAKE} ${.MAKEFLAGS} deinstall
.endif

# This target may be used by dependent ports to set SMLNJ_DEVEL_VERSION
# either to the currently installed sml-nj-devel package's version
# or else to this port's version. SMLNJ_DEVEL_VERSION is an environment
# variable used by multiexec-wrapper to select the executable
# from that smlnj-devel-* package matching SMLNJ_DEVEL_VERSION.
smlnj-devel-version:
	@@${EXPR} `${PKG_INFO} -q -O lang/sml-nj-devel` : '.*-\(.*\)' \
		2>/dev/null || \
	${ECHO_CMD} ${PKGVERSION}

.include <bsd.port.post.mk>
@


1.39
log
@- Update to 110.71

PR:		139807
Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> (maintainer)
@
text
@d5 1
a5 1
# $FreeBSD$
@


1.38
log
@Remove comment about PKG_INFO not being available.
@
text
@d9 1
a9 1
PORTVERSION=	110.65
d27 2
a28 1
		RECOMPILE "recompile the SML compiler - implies EVERYTHING" off
d48 7
d69 3
a71 2
MLSRCDIRS=	base ckit cml eXene heap2asm ml-burg ml-lex ml-lpt \
		ml-yacc nlffi pgraph smlnj-c smlnj-lib
d104 4
d150 2
a151 8
# calm portlint complaining about /dev/null
AUXSLASH=	/
AUXDEV=		${AUXSLASH}dev
AUXDEVNULL!=	if [ -w ${AUXDEV}/null ]; then ${ECHO_CMD} -n ${AUXDEV}/null; \
		else ${ECHO_CMD} -n '${WRKDIR}/.devnull'; fi

MLRUNTIMEPATCHES!=	cd ${FILESDIR} && \
			( ${LS} do-patch-base_runtime_* 2> ${AUXDEVNULL} || \
d153 9
d163 2
a164 2
MLSOURCEPATCHES!=	cd ${FILESDIR} && \
			( ${LS} do-patch-* 2> ${AUXDEVNULL} || \
d167 1
a167 1
MLSOURCEPATCHES=
d174 5
a178 2
	MLRUNTIMEPATCHES="${MLRUNTIMEPATCHES}" \
	MLSOURCEPATCHES="${MLSOURCEPATCHES}"	./config/install.sh
d184 1
d228 1
a228 2
.for p in ${MLRUNTIMEPATCHES}
	@@${ECHO_CMD} '${p}' | \
a231 1
.endfor
d268 1
@


1.37
log
@pkg_info -> ${PKG_INFO}
@
text
@a290 1
#	XXX PKG_INFO not in bsd.commands.mk (20070818)
@


1.36
log
@- Use SUB_FILES and SUB_LIST. [1]
- Minor tweaks to the port Makefile and pkg-install script.

Suggested by:	sat [1]
Submitted by:	Johannes 5 Joemann [MAINTAINER]
@
text
@d292 1
a292 1
	@@${EXPR} `pkg_info -q -O lang/sml-nj-devel` : '.*-\(.*\)' \
@


1.35
log
@Update to v110.65.  Upstream changes from the previous version of the
port include:
 - many bug fixes, a revised regression test suite.
 - a new MLRISC code generator for the amd64.
 - "lexgen" has been replaced by "ml-ulex".
 - "ml-ulex", "ml-antlr" and "trace-debug-profile" are now part of
   the default install.

Remove CONFLICTS with sml-nj. The sml-nj* ports now use a helper
script (installed as ${PREFIX}/bin/multiexec-wrapper) to resolve
conflicting executable names (such as sml, ml-lex, etc.).

Submitted by:	Johannes 5 Joemann [MAINTAINER]
@
text
@a9 1
PKGNAMESUFFIX=	-devel
d13 1
d15 1
a20 1
DIST_SUBDIR=	sml-nj/${PORTVERSION}
d29 2
a30 1
PKGINSTALL=	${WRKDIR}/.pkg-install
a85 1
	@@${ECHO} ' ml-antlr (LL(k) parser generator),'
a87 1
	@@${ECHO} ' ml-ulex (lexer generator with unicode support),'
a124 5
# The text of the pkg-install script depends on the programs which will
# be installed, see "post-install" below.
	${SED} -e 's?%%EXENAMES%%?${MLEXE}?g' \
	-e 's?%%EXEBINDIR%%?${MLBINRELATIVE}?g' \
	${FILESDIR}/pkg-install.in > ${PKGINSTALL}
d289 1
a289 1
# from that smlnj-* package matching SMLNJ_DEVEL_VERSION.
@


1.34
log
@Upgrade to v110.60.  Upstream changes include:
 - a new directory layout.
 - new code generator tools (in beta).

Submitted by:	Johannes 5 Joemann (joemann at beefree dot free dot de)
@
text
@d9 2
a10 1
PORTVERSION=	110.60
a23 3
NO_LATEST_LINK=	yes
CONFLICTS=	smlnj-110.0.*

d29 3
d41 2
a42 2
DISTFILES+=	MLRISC.tgz ckit.tgz cml.tgz heap2asm.tgz lexgen.tgz \
		ml-lex.tgz ml-yacc.tgz smlnj-lib.tgz
d51 2
a52 3
DISTFILES+=	cm.tgz compiler.tgz eXene.tgz ml-burg.tgz ml-lpt.tgz \
		nlffi.tgz pgraph.tgz smlnj-c.tgz system.tgz \
		trace-debug-profile.tgz
d57 1
d60 1
a60 1
MLSRCDIRS=	base ckit cml eXene heap2asm lexgen ml-burg ml-lex ml-lpt \
d67 2
a68 1
MLEXE=		heap2exec lexgen ml-build ml-lex ml-makedepend ml-yacc sml
d70 3
a72 3
MLTARGETS+=	eXene ml-antlr ml-burg ml-nlffi-lib ml-nlffigen ml-ulex \
		mlrisc-tools nowhere pgraph-util tdp-util src-smlnj
MLEXE+=		ml-antlr ml-burg ml-nlffigen ml-ulex nowhere
d122 1
d126 5
d282 19
a300 4
	${MKDIR} ${PREFIX}/bin
.for f in ${MLEXE}
	${LN} -s ${MLBIN}/$f ${PREFIX}/bin/$f
.endfor
@


1.33
log
@Upgrade to v110.59.

Upstream changes from the previous version of the port include:
 - An improved lexer generator tool "lexgen".
 - bug fixes and minor improvements

Submitted by:	Johannes 5 Joemann <joemann at beefree.free.de>, with
		patches tty handling code from Timothy Bourke
		<timbob at bigpond.com>
@
text
@d9 1
a9 1
PORTVERSION=	110.59
d40 2
a41 2
DISTFILES+=	ml-yacc.tgz ml-lex.tgz lexgen.tgz smlnj-lib.tgz cml.tgz \
		MLRISC.tgz ckit.tgz heap2asm.tgz
d50 3
a52 2
DISTFILES+=	ml-burg.tgz ml-nlffi-lib.tgz ml-nlffigen.tgz smlnj-c.tgz \
		eXene.tgz cm.tgz compiler.tgz system.tgz tools.tgz
d59 6
a64 2
MLSRCSBASE=	ckit src
MLSRCS=		${MLROOT}/ckit ${MLROOT}/src
d66 1
a66 1
MLEXE=		sml ml-yacc lexgen ml-lex ml-build ml-makedepend heap2exec
d68 3
a70 3
MLTARGETS+=	ml-burg eXene src-smlnj \
		ml-nlffi-lib ml-nlffigen nowhere pgraph-util
MLEXE+=		ml-burg ml-nlffigen nowhere
d81 4
a84 2
	@@${ECHO} 'Use make WITH_EVERYTHING=yes to also build ml-burg'
	@@${ECHO} ' (tree transformer), eXene (X Windows toolkit),'
d86 1
d88 1
a88 1
	@@${ECHO} ' and all the sources.'
d103 2
a104 1
# src/system/smlnj/installer using config/dependencies.
d125 1
a125 1
# src/runtime is not cleaned afterwards to avoid its recompilation during
d127 1
a127 1
# See src/system/README for information on recompiling the compiler.
d130 1
a130 1
RECOMPILEDIR=	src/system
d142 1
a142 1
			( ${LS} do-patch-src_runtime_* 2> ${AUXDEVNULL} || \
d146 1
a146 1
			( ${LS} do-patch-src_* 2> ${AUXDEVNULL} || \
d159 1
a159 1
	${RM} ${WRKDIR}/config/targets.customized
d192 1
a192 1
MLSRCEXCLUDEREGEX=	-e '^(@@dirrm\ )?${MLROOTRELATIVE}/src/runtime'
d203 2
a204 2
	${SED} -E -e 's%^(.*[^/])$$%${MLROOTRELATIVE}/src/\1%' \
		-e 's%^(.*)/$$%@@dirrm\ ${MLROOTRELATIVE}/src/\1%' \
d209 1
a209 1
	${SED} -E -e 's%^do-patch-(src/.*)%${MLROOTRELATIVE}/\1.orig%' \
d213 1
a213 1
	( ${FIND} -s -d ${MLSRCSBASE} \! -type d | \
d215 3
a217 1
	( ${FIND} -s -d ${MLSRCSBASE} -type d | \
d220 3
a222 2
	@@${GREP} -h ^[^@@] ${MLPLISTFILES} | ${SORT} -u > ${PLIST}
	@@${GREP} -h ^@@dirrm ${MLPLISTFILES} | ${SORT} -r -u >> ${PLIST}
d264 2
a265 2
	@@${ECHO} '(* Cleaning src/runtime: *)'
	cd ${WRKDIR}/src/runtime/objs && ${GMAKE} clean
d267 1
a267 1
	@@cd ${WRKDIR} && ${TAR} -cf - ${MLSRCEXCLUDES} ${MLSRCSBASE} | \
@


1.32
log
@Upgrade to v110.57.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d9 1
a9 1
PORTVERSION=	110.57
a13 13
.include <bsd.port.pre.mk>
.if (${ARCH} == "i386")
DISTFILES+=	boot.x86-unix.tgz
#.elif (${ARCH} == "alpha")
#DISTFILES+=	boot.alpha32-unix.tgz
.endif
DISTFILES+=	ml-yacc.tgz ml-lex.tgz smlnj-lib.tgz cml.tgz MLRISC.tgz ckit.tgz
.if defined(WITH_EVERYTHING) || defined(WITH_RECOMPILE)
DISTFILES+=	ml-burg.tgz \
		ml-nlffi-lib.tgz ml-nlffigen.tgz smlnj-c.tgz \
		eXene.tgz \
		cm.tgz compiler.tgz system.tgz tools.tgz
.endif
d28 5
d35 1
d38 1
d40 2
d49 5
a58 1
MLSRCSRELATIVE=	${MLROOTRELATIVE}/ckit ${MLROOTRELATIVE}/src
d60 2
a61 1
MLEXE=		sml ml-yacc ml-lex ml-build ml-makedepend
d63 1
a63 1
MLTARGETS=	ml-burg eXene src-smlnj \
a96 1
.if defined(WITH_EVERYTHING)
d98 2
a99 1
	${ECHO_CMD} -n > ${WRKDIR}/.tmp.sed
d101 1
a101 1
	${ECHO_CMD} '/^#request[ 	]+${t}$$/s/^#//' >> ${WRKDIR}/.tmp.sed
d103 2
a104 1
	${SED} -i .default -E -f ${WRKDIR}/.tmp.sed "${WRKDIR}/config/targets"
a113 1
.endif
d133 1
a133 1
			( ${LS} do-patch-src::runtime::* 2> ${AUXDEVNULL} || \
d137 1
a137 1
			( ${LS} do-patch-src::* 2> ${AUXDEVNULL} || \
d187 3
d197 4
a200 4
	-@@cd ${FILESDIR} && \
	( ${LS} do-patch-src::runtime::* 2> ${AUXDEVNULL} ) | \
	${SED} -e 's%::%/%g' | \
	${SED} -E -e 's%^do-patch-(.*)%${MLROOTRELATIVE}/\1.orig%' \
d202 1
@


1.31
log
@Update to v110.54.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de>
@
text
@d9 1
a9 1
PORTVERSION=	110.54
@


1.30
log
@Upgrade to v110.52.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d9 1
a9 1
PORTVERSION=	110.52
d20 1
a20 1
DISTFILES+=	ml-yacc.tgz ml-lex.tgz smlnj-lib.tgz cml.tgz MLRISC.tgz
d23 1
a23 1
		ckit.tgz ml-nlffi-lib.tgz ml-nlffigen.tgz smlnj-c.tgz \
d25 1
a25 1
		cm.tgz compiler.tgz system.tgz
d108 2
a109 1
	  ${ECHO_CMD} "request	ml-lex" ) \
a134 1
MLSOURCEUNPACKTARGETS=	cm compiler mlrisc smlnj-lib system
a138 1
MLSOURCEUNPACKTARGETS=
a145 1
	MLSOURCEUNPACKTARGETS="${MLSOURCEUNPACKTARGETS}" \
@


1.29
log
@Upgrade to v110.51.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d9 1
a9 1
PORTVERSION=	110.51
d11 2
a12 1
MASTER_SITES=	http://smlnj.cs.uchicago.edu/dist/working/${PORTVERSION}/
@


1.28
log
@Upgrade to v110.50.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d9 1
a9 1
PORTVERSION=	110.50
d123 9
a131 1
MLRUNTIMEPATCHES!=	cd ${FILESDIR} && ${LS} do-patch-src::runtime::*
d134 3
a136 1
MLSOURCEPATCHES!=	cd ${FILESDIR} && ${LS} do-patch-src::*
d194 2
a195 1
	-@@cd ${FILESDIR} && ${LS} do-patch-src::runtime::* | \
@


1.27
log
@Upgrade to v110.48.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d9 1
a9 1
PORTVERSION=	110.48
d19 2
a20 2
DISTFILES+=	ml-yacc.tgz ml-lex.tgz smlnj-lib.tgz cml.tgz
.if defined(WITH_EVERYTHING) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
d24 1
a24 1
		MLRISC.tgz cm.tgz compiler.tgz system.tgz
a47 3
.if defined(WITH_FLINT)
WITH_RECOMPILE?=	${WITH_FLINT}
.endif
a69 34
.if defined(WITH_FLINT)
MLFLINTPATCH=	optional-patch-src::compiler::core.cm
.endif

# This is an ugly hack to find out if we need to patch and
# recompile the core system, because src/system/smlnj/installer
# currently fails on cross device installs, i.e. if ${WRKDIR}
# and ${MLROOT} are not on the same partition.

.if !make(describe) && !defined(WITH_RECOMPILE)
.if defined(WRKDIR)
MLWRKDIR=	${WRKDIR}
.else
MLWRKDIR!=	cd ${.CURDIR} && ${MAKE} describe -V WRKDIR
.endif
.if !defined(DF)
DF!=		${WHICH} df
.endif
MLCHROOT!=	${DF} / | ${TAIL} -1 | \
		${AWK} '{ if ($$NF == "/") pri''ntf "" ; \
			else pri''ntf "%s", $$NF }'
MLFINDMOUNT=	'{ if (P == $$NF) MAXMOUNT = P ; else \
		   if (index(P "/", $$NF) == 1) \
		   if (length($$NF) > length(MAXMOUNT)) MAXMOUNT = $$NF } \
		END { print MAXMOUNT }'
MLWRKDIRMOUNT!=	${DF} | ${AWK} -v P="${MLCHROOT}${MLWRKDIR}" ${MLFINDMOUNT}
MLROOTMOUNT!=	${DF} | ${AWK} -v P="${MLCHROOT}${MLROOT}" ${MLFINDMOUNT}
.if ${MLWRKDIRMOUNT} != ${MLROOTMOUNT}
FORCE_RECOMPILE=	yes
.if !defined(WITH_EVERYTHING)
DISTFILES+=	MLRISC.tgz cm.tgz compiler.tgz system.tgz
.endif
.endif
.endif
a71 8
.if defined(FORCE_RECOMPILE)
	@@${ECHO}
	@@${ECHO} '***** Recompilation enforced because of an installer bug'
	@@${ECHO} '***** for cross device installs. This increases time'
	@@${ECHO} '***** and space required to build the port.'
	@@${ECHO} '***** To avoid this, let WRKDIR (or WRKDIRPREFIX)'
	@@${ECHO} '***** point to the same partition as ${MLROOT}.'
.endif
a83 9
.if !defined(WITH_FLINT)
	@@${ECHO} 'Use make WITH_FLINT=yes to apply a p''atch w''hich makes'
	@@${ECHO} ' the compiler'"'"'s FLINT structures visible (see'
	@@${ECHO} ' http://flint.cs.yale.edu/flint/publications/tcif.html),'
	@@${ECHO} ' use it with CM.autoload "$$smlnj/viscomp/core.cm";'
	@@${ECHO} ' or see http://offshore.free.de/~5/FLINTerpreter/sml2flint/'
	@@${ECHO} ' for code that should help you to get started.'
	@@${ECHO} ' This implies WITH_RECOMPILE.'
.endif
d95 1
a95 1
.if defined(WITH_EVERYTHING) || defined(FORCE_RECOMPILE)
a96 1
.if defined(WITH_EVERYTHING)
a101 1
.endif
d105 1
a105 1
.if defined(WITH_RECOMPILE) || defined(FORCE_RECOMPILE)
d117 1
a117 1
.if defined(WITH_RECOMPILE) || defined(FORCE_RECOMPILE)
d123 2
a124 1
.if defined(WITH_EVERYTHING) || defined(FORCE_RECOMPILE)
a126 3
.if defined(WITH_FLINT)
MLSOURCEPATCHES+=	${MLFLINTPATCH}
.endif
d137 1
d139 1
a139 1
.if defined(WITH_RECOMPILE) || defined(FORCE_RECOMPILE)
d169 1
a169 1
.if defined(WITH_RECOMPILE) || defined(FORCE_RECOMPILE)
d184 4
d213 1
a213 1
.if !defined(WITH_RECOMPILE) && !defined(FORCE_RECOMPILE)
@


1.26
log
@Bump PORTREVISION on all ports that depend on gettext to aid with upgrading.

(Part 2)
@
text
@d9 1
a9 2
PORTVERSION=	110.42
PORTREVISION=	1
d11 1
a11 3
MASTER_SITES=	ftp://ftp.research.bell-labs.com/dist/smlnj/working/${PORTVERSION}/ \
		ftp://flint.cs.yale.edu/pub/smlnj/working/${PORTVERSION}/ \
		ftp://gd.tuwien.ac.at/languages/smlnj/working/${PORTVERSION}/
d13 2
a14 1
.if (${MACHINE_ARCH} == "i386")
d16 1
a16 1
#.elif (${MACHINE_ARCH} == "alpha")
d22 1
a22 1
		ckit.tgz ml-nlffi-lib.tgz ml-nlffigen.tgz \
d36 1
d40 1
a40 1
.if (${MACHINE_ARCH} == "i386")
d42 1
a42 1
#.elif (${MACHINE_ARCH} == "alpha")
d46 2
d56 1
a56 1
MLROOT=	${PREFIX}/${MLROOTRELATIVE}
d61 1
a61 1
MLSRCS=	${MLROOT}/ckit ${MLROOT}/src
d68 2
a69 2
MLRUNTIMEPLIST=	${WRKDIR}/.PLIST.runtime
MLSRCPLIST=	${WRKDIR}/.PLIST.src
d73 34
d109 8
d143 1
a143 1
	cd ${WRKDIR} && ${LN} -sf ${_DISTDIR}/*  .
d147 1
a147 1
# config/install.sh using config/dependencies.
d149 2
a151 1
do-configure:
d156 8
a163 1
	${SED} -E -f ${WRKDIR}/.tmp.sed "${WRKDIR}/config/targets" \
d166 1
d168 2
a169 2
# The build target builds and installs the system within the WRKDIR.
# The src/runtime is not cleaned afterwards to avoid recompilation during
d173 9
d183 5
a187 1
MLFLINTPATCH=	optional-patch-flint-access
a190 6
.if defined(WITH_RECOMPILE)
	${MV} "${WRKDIR}/config/targets.customized" \
	"${WRKDIR}/config/targets.customized.later"
	${SED} -E -e '/^#request[        ]+src-smlnj$$/s/^#//' \
	"${WRKDIR}/config/targets" > "${WRKDIR}/config/targets.customized"
.endif
d192 8
a199 10
	FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
	MLNORUNTIMECLEAN=yes	./config/install.sh
.if defined(WITH_FLINT)
	${TEST} -f "${WRKDIR}/.patch.${MLFLINTPATCH}" || \
	( cd ${WRKDIR} && \
	${PATCH} < "${FILESDIR}/${MLFLINTPATCH}" && \
	${TOUCH} "${WRKDIR}/.patch.${MLFLINTPATCH}" )
.endif
.if defined(WITH_RECOMPILE)
	cd ${WRKDIR}/src/system && ( \
d202 6
a207 2
	../../bin/sml && \
	./makeml && \
d210 5
a214 4
	\! -name 'sml.${MLARCH}-bsd' -delete && \
	./installml && \
	${MV} "${WRKDIR}/config/targets.customized.later" \
	"${WRKDIR}/config/targets.customized"
d216 3
a218 2
	FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
	MLNORUNTIMECLEAN=yes	./config/install.sh
d221 1
a221 1
# Nowadays PLIST has to be computed before installation. We do it in 
d223 1
d225 4
a228 3
MLNOINSTALL=	CM
.if defined(WITH_RECOMPILE)
MLNOINSTALL+=	sml.boot.${MLARCH}-unix sml.bin.${MLARCH}-unix
d236 1
a236 1
	@@${ECHO} -n 'Computing package list ...'
d249 1
a249 1
	@@${ECHO} ' done.'
a263 2
PLIST_SUB=	MLARCH=${MLARCH}

d266 1
a266 5
.if defined(WITH_RECOMPILE)
	${MV} "${WRKDIR}/config/targets.customized" \
	"${WRKDIR}/config/targets.customized.later"
	${ECHO_CMD} -n > "${WRKDIR}/config/targets.customized"
.endif
d268 12
a279 14
	FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
	INSTALLDIR="$(MLROOT)"	./config/install.sh
	MLARCHOPSYS=`$(MLBIN)/.arch-n-opsys` && \
	( eval $${MLARCHOPSYS} ; \
	$(STRIP_CMD) "$(MLBIN)/.run/run.$${ARCH}-$${OPSYS}" )
.if defined(WITH_RECOMPILE)
	cd ${WRKDIR}/src/system && \
	INSTALLROOT="${MLROOT}" ./makeml && \
	${RM} -rf "${MLLIB}" && ${MKDIR} "${MLLIB}" && \
	${FIND}  "${MLBIN}"/.heap -name '*.${MLARCH}-bsd' \
	\! -name 'sml.${MLARCH}-bsd' -delete && \
	INSTALLROOT="${MLROOT}" ./installml
	${MV} "${WRKDIR}/config/targets.customized.later" \
	"${WRKDIR}/config/targets.customized"
d281 3
a283 2
	FILESDIR="$(FILESDIR)" PATCH="$(PATCH)" PATCH_ARGS="$(PATCH_ARGS)" \
	INSTALLDIR="$(MLROOT)"	./config/install.sh
d285 3
d290 1
d292 1
a292 1
	@@${ECHO} -n 'Installing sources into ${MLROOT} ...'
d296 1
a296 1
	@@${ECHO} ' done.'
d300 3
a302 3
	${MKDIR} $(PREFIX)/bin
.for f in $(MLEXE)
	${LN} -s $(MLBIN)/$f $(PREFIX)/bin/$f
d305 1
a305 1
.include <bsd.port.mk>
@


1.25
log
@Use the SORT macro from bsd.port.mk.
@
text
@d10 1
@


1.24
log
@Unbreak build with GCC 3.3.1.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d181 2
a182 2
	@@${GREP} -h ^[^@@] ${MLPLISTFILES} | sort -u > ${PLIST}
	@@${GREP} -h ^@@dirrm ${MLPLISTFILES} | sort -r -u >> ${PLIST}
@


1.23
log
@Update for compatibility with new bsd.port.mk patches.

Submitted by:	maintainer
@
text
@a43 2
#.else
#BROKEN=		not ported to ${MACHINE_ARCH}
d75 2
a76 2
	@@${ECHO} 'Use make WITH_EVERYTHING=yes to also build ml-burg,'
	@@${ECHO} ' CML (Concurrent ML), eXene (X Windows toolkit),'
@


1.22
log
@- Unbreak for 5-CURRENT
- calm processor warnings for assembler code on 5-CURRENT
- mark the Alpha as currently unsupported
- update WWW: link.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d68 1
d70 2
a71 1
MLPLISTFILES=	${.CURDIR}/pkg-plist ${FILESDIR}/plist-everything ${MLSRCPLIST}
d159 29
a193 4
MLNOINSTALL=	CM
.if defined(WITH_RECOMPILE)
MLNOINSTALL+=	sml.boot.${MLARCH}-unix sml.bin.${MLARCH}-unix
.endif
a235 5
	cd "${PREFIX}" && ( ${FIND} -s -d ${MLSRCSRELATIVE} \! -type d ; \
	( ${FIND} -s -d ${MLSRCSRELATIVE} -type d | \
	${AWK} '{ printf "@@dirrm "; print }' ) ) > ${MLSRCPLIST}
	${GREP} -h ^[^@@] ${MLPLISTFILES} | sort -u > ${PLIST}
	${GREP} -h ^@@dirrm ${MLPLISTFILES} | sort -r -u >> ${PLIST}
@


1.21
log
@De-pkg-comment.
@
text
@d17 2
a18 2
.elif (${MACHINE_ARCH} == "alpha")
DISTFILES+=	boot.alpha32-unix.tgz
d38 2
d42 4
a45 4
.elif (${MACHINE_ARCH} == "alpha")
MLARCH=		alpha32
.else
BROKEN=		not ported to ${MACHINE_ARCH}
d126 2
a127 1
	${MV} "${WRKDIR}/config/targets.customized" "${WRKDIR}/config/targets.customized.later"
d178 2
a179 1
	${MV} "${WRKDIR}/config/targets.customized" "${WRKDIR}/config/targets.customized.later"
@


1.20
log
@Update to v110.42.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d30 1
@


1.19
log
@Update to v110.41.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d9 1
a9 1
PORTVERSION=	110.41
d20 1
a20 1
DISTFILES+=	ml-yacc.tgz ml-lex.tgz smlnj-lib.tgz
d24 1
a24 1
		cml.tgz eXene.tgz \
@


1.18
log
@Upgrade to v110.40.

Submitted by: 	Johannes 5 Joemann <joemann@@beefree.free.de> [MAINTAINER]
@
text
@d9 1
a9 1
PORTVERSION=	110.40
@


1.17
log
@Upgrade to v110.39.  Compilation of this port is now controlled by three
knobs:
	- the default compiles the basic runtime, heap, libs, ml-yacc,
	  ml-lex and smlnj-lib
	- WITH_EVERYTHING installs everything in the distribution,
	  including sources
	- WITH_RECOMPILE recompiles the compiler, implies WITH_EVERYTHING
	- WITH_FLINT applies the patch to access FLINT, implies
	  WITH_RECOMPILE

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de> (MAINTAINER)
@
text
@d9 1
a9 1
PORTVERSION=	110.39
a66 3
.if defined(WITH_FLINT)
MLPLISTFILES+=	${FILESDIR}/plist-flint
.endif
d86 3
a88 1
	@@${ECHO} ' use it with CM.autoload "$$smlnj/viscomp/core_flint.cm";'
@


1.16
log
@Use ${ECHO_CMD} instead of ${ECHO} where you mean the echo command;
the ECHO macro is set to "echo" by default, but it is set to "true" if
make(1) is invoked with the -s option while ECHO_CMD is always set to
the echo command.

Use command macros where appropriate.
@
text
@d9 1
a9 1
PORTVERSION=	110.37
d13 1
a13 2
		ftp://sunsite.doc.ic.ac.uk/computing/programming/languages/ml/smlnj/working/${PORTVERSION}/ \
		ftp://ftp.diku.dk/pub/smlnj/working/${PORTVERSION}/
d20 6
a25 11
DISTFILES+=	ckit.tgz ml-burg.tgz ml-lex.tgz \
		ml-nlffi-lib.tgz ml-nlffigen.tgz \
		ml-yacc.tgz smlnj-lib.tgz
.if defined(WITH_CML) || defined(WITH_EXENE)
DISTFILES+=	cml.tgz
.endif
.if defined(WITH_EXENE)
DISTFILES+=	eXene.tgz
.endif
.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
DISTFILES+=	MLRISC.tgz cm.tgz compiler.tgz system.tgz
d31 6
d45 19
a63 3
MLTARGETS=	ml-burg ckit ml-nlffi-lib ml-nlffigen
MLEXE=		ml-build ml-makedepend sml ml-yacc ml-lex ml-burg ml-nlffigen
.if defined(WITH_CML) || defined(WITH_EXENE) || defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
a64 1
MLPLISTFILES=	${.CURDIR}/pkg-plist
d66 4
a71 27
.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
# the pkg-plist for sources is large, so we'll generate it on the fly (during do-install)
MLPLISTFILES+=	${MLSRCPLIST}
MLTARGETS+=	src-smlnj
.endif
.if defined(WITH_CML) || defined(WITH_EXENE)
MLPLISTFILES+=	${FILESDIR}/plist-cml
MLTARGETS+=	cml cml-lib
.endif
.if defined(WITH_EXENE)
MLPLISTFILES+=	${FILESDIR}/plist-eXene
MLTARGETS+=	eXene
.endif

# Other mirror sites that generally carry only released versions of SML
# 	ftp://rodin.stanford.edu/pub/smlnj/release/
# 	ftp://ftp.cl.cam.ac.uk/MIRRORED/smlnj/release/
# 	ftp://ftp.ntua.gr/pub/lang/smlnj/release/
# Mirror sites that keep files around in gzipped format
# 	ftp://flint.cs.yale.edu/pub/smlnj/working/110.9.1/

DIST_SUBDIR=	sml-nj/${PORTVERSION}
NO_WRKSUBDIR=	yes
USE_GMAKE=	yes

NO_LATEST_LINK=	yes

d74 6
a79 3
.if !defined(WITH_EXENE)
.if !defined(WITH_CML)
	@@${ECHO} 'Use make WITH_CML=yes to build CML (Concurrent ML).'
d81 3
a83 2
	@@${ECHO} 'Use make WITH_EXENE=yes to build eXene (X Windows toolkit),'
	@@${ECHO} ' this implies WITH_CML.'
d86 5
a90 10
.if !defined(WITH_RECOMPILE)
.if !defined(WITH_SRC)
	@@${ECHO} 'Use make WITH_SRC=yes to have the sources installed.'
.endif
	@@${ECHO} 'Use make WITH_RECOMPILE=yes to recompile the compiler,'
	@@${ECHO} ' this implies WITH_SRC.'
.endif
	@@${ECHO} 'Use make WITH_FLINT=yes to build sml with the FLINT'
	@@${ECHO} ' structures accessible (see http://flint.cs.yale.edu),'
	@@${ECHO} ' this implies WITH_RECOMPILE.'
d99 3
a101 2
# Configuring is done by uncommenting the appropriate #TARGETS="$TARGETS xxx"
# lines of config/targets
d103 1
a104 2
	test -f "${WRKDIR}/config/targets.orig" || \
	${MV} "${WRKDIR}/config/targets" "${WRKDIR}/config/targets.orig"
d107 1
a107 1
	${ECHO_CMD} '/^#TARGETS="\$$TARGETS[ 	]+${t}"$$/s/#//' >> ${WRKDIR}/.tmp.sed
d109 3
a111 2
	${SED} -E -f ${WRKDIR}/.tmp.sed "${WRKDIR}/config/targets.orig" \
	> "${WRKDIR}/config/targets"
d123 5
d132 1
a132 1
	test -f "${WRKDIR}/.patch.${MLFLINTPATCH}" || \
d137 1
a137 1
.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
d143 9
a151 1
	./installml &&
d155 1
a155 1
# location in ${PREFIX}/smlnj.
d157 1
a157 1
# libraries built during compiler bootstrap to ${PREFIX}/smlnj.
d159 1
a159 1
.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
d161 1
a161 1
.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
d173 5
a177 1
	${MKDIR} "${PREFIX}/smlnj"
d180 5
a184 2
	INSTALLDIR="$(PREFIX)/smlnj"	./config/install.sh
.if defined(WITH_RECOMPILE) || defined(WITH_FLINT)
d186 10
a195 2
	INSTALLROOT="${PREFIX}/smlnj" ./makeml && \
	INSTALLROOT="${PREFIX}/smlnj" ./installml
d197 2
a198 1
.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
d200 4
a203 2
	@@${ECHO} -n 'Installing sources into ${PREFIX}/smlnj ...'
	@@cd ${WRKDIR} && tar -cf - ${MLSRCEXCLUDES} ckit src | tar -xf - -C "${PREFIX}/smlnj"
d205 3
a207 5
	cd "${PREFIX}" && ( find -s -d smlnj/src smlnj/ckit \! -type d ; \
	( find -s -d smlnj/src smlnj/ckit -type d | ${AWK} '{ printf "@@dirrm "; print }' ) \
	) > ${MLSRCPLIST}
.endif
.if defined(WITH_CML) || defined(WITH_EXENE) || defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
d215 1
a215 1
	${LN} -s $(PREFIX)/smlnj/bin/$f $(PREFIX)/bin/$f
@


1.15
log
@Change MAINTAINER to the capable hands of Johannes 5 Joemann
<joemann@@beefree.free.de>.
@
text
@d114 1
a114 1
	${ECHO} -n > ${WRKDIR}/.tmp.sed
d116 1
a116 1
	${ECHO} '/^#TARGETS="\$$TARGETS[ 	]+${t}"$$/s/#//' >> ${WRKDIR}/.tmp.sed
d142 2
a143 2
	${ECHO} 'CM.autoload "$$smlnj/cmb.cm";' ; \
	${ECHO} 'CMB.make ();' ) | \
@


1.14
log
@Update to v110.37.

Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de>
@
text
@d35 1
a35 1
MAINTAINER=	jkoshy@@freebsd.org
@


1.13
log
@Upgrade to SML/NJ v110.34.  Add a number of nifty configurability options.

PR:		ports/29656
Submitted by:	Johannes 5 Joemann <joemann@@beefree.free.de>
@
text
@d5 1
a5 1
# $FreeBSD: ports/lang/sml-nj-devel/Makefile,v 1.12 2001/06/18 10:34:11 jkoshy Exp $
d9 1
a9 1
PORTVERSION=	110.34
d15 1
d17 1
a17 1
DISTFILES=	boot.x86-unix.tgz
d19 1
a19 1
DISTFILES=	boot.alpha32-unix.tgz
d21 1
a21 2
DISTFILES+=	config.tgz runtime.tgz cm.tgz ckit.tgz \
		ml-burg.tgz ml-lex.tgz \
a23 3
.if defined(WITH_SRC) || defined(WITH_RECOMPILE) || defined(WITH_FLINT)
DISTFILES+=	compiler.tgz system.tgz MLRISC.tgz
.endif
d30 3
d42 1
a42 1
BROKEN=		not ported to ${MLARCH}
d164 2
@


1.12
log
@Upgrade to development version 110.33.
@
text
@d5 1
a5 1
# $FreeBSD: ports/lang/sml-nj-devel/Makefile,v 1.11 2000/05/29 06:27:16 jkoshy Exp $
d9 1
a9 1
PORTVERSION=	110.33
d11 10
a20 5
MASTER_SITES=	ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.33/ \
		ftp://ftp.diku.dk/pub/smlnj/working/110.33/ \
		ftp://sunsite.doc.ic.ac.uk/computing/programming/languages/ml/smlnj/working/110.33/ \
		ftp://compiler.kaist.ac.kr/pub/sml/working/110.33/
DISTFILES=	boot.x86-unix.tgz compiler.tgz cm.tgz ckit.tgz config.tgz  \
d23 10
a32 2
		ml-yacc.tgz runtime.tgz \
		smlnj-lib.tgz system.tgz
d37 30
a76 1
NO_BUILD=	yes
d80 22
a101 1
MLEXE=	ml-build ml-makedepend sml ml-yacc ml-lex ml-burg ml-nlffigen
d104 1
a106 1
	${CP} ${FILESDIR}/targets.customized ${WRKDIR}/config/targets.customized
d108 57
a164 1
# The install target attempts to build and install the system
d166 1
a166 1
	${MKDIR} ${PREFIX}/smlnj
d170 18
d190 1
@


1.11
log
@`sml-nj-devel' will be tracking SML/NJ working snapshots.  Set NO_LATEST_LINK
to prevent packaging.
@
text
@d5 1
a5 1
# $FreeBSD: ports/lang/sml-nj-devel/Makefile,v 1.10 2000/04/12 06:20:41 obrien Exp $
d9 1
a9 1
PORTVERSION=	110.9.1
d11 10
a20 9
MASTER_SITES=	ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.9.1/ \
		ftp://ftp.diku.dk/pub/smlnj/working/110.9.1/ \
		ftp://sunsite.doc.ic.ac.uk/computing/programming/languages/ml/smlnj/working/110.9.1/ \
		ftp://compiler.kaist.ac.kr/pub/sml/working/110.9.1/
DISTFILES=	110.9.1-bin.x86-unix.tar.Z 110.9.1-cm.tar.Z 110.9.1-cml.tar.Z \
		110.9.1-config.tar.Z 110.9.1-eXene.tar.Z \
		110.9.1-ml-burg.tar.Z 110.9.1-ml-lex.tar.Z \
		110.9.1-ml-yacc.tar.Z 110.9.1-runtime.tar.Z \
		110.9.1-smlnj-c.tar.Z 110.9.1-smlnj-lib.tar.Z
d31 1
a31 1
DIST_SUBDIR=	sml-nj
a32 1
EXTRACT_ONLY=	110.9.1-config.tar.Z
d34 1
d38 1
a38 5
SML_BASE=	${PREFIX}/lib/sml-nj
SML_LIBDIR=	${SML_BASE}/lib
SML_BINDIR=	${SML_BASE}/bin
SML_SRCDIR=	${SML_BASE}/src
SML_EXES=	ml-burg ml-lex ml-yacc sml
d43 1
d45 3
a47 2
# The build target needs to run $WRKDIR/config/install.sh
do-build:
d50 1
a50 1
		./config/install.sh
d52 3
a54 25
# install target
# 1. create installation directories
# 2. copy the ./bin directory across
# 3. edit bin/.run_sml to override BIN_DIR
# 4. copy all .stable files in CM/ directories
# 5. find all .cm files reachable from $WRKDIR/lib and copy them across
# 6. copy the aliases in ./lib changing WRKDIR to SML_LIBDIR
# 7. install links to executables in $PREFIX/bin
do-install:
	${MKDIR} ${SML_BASE} ${SML_BINDIR} ${SML_LIBDIR}
	tar -C ${WRKDIR} -cf - bin | tar -C ${SML_BASE} -xf -
	${RM} -f ${SML_BINDIR}/.run-sml
	${SED} -e "s,^BIN_DIR=.*\$$,BIN_DIR=${SML_BINDIR}," \
		< ${WRKDIR}/bin/.run-sml > ${SML_BINDIR}/.run-sml
	${CHMOD} 755 ${SML_BINDIR}/.run-sml
	cd ${WRKDIR} && tar -cf - `find . -name '*.stable' | ${GREP} CM` | \
		tar -C ${SML_BASE} -xf -
	cd ${WRKDIR} && tar -cf - `${SCRIPTDIR}/get-cm ${WRKDIR}` | \
		tar -C ${SML_BASE} -xf -
	for file in ${WRKDIR}/lib/*; do\
		${SED} -e "s,${WRKDIR},${SML_BASE}," < $$file > \
			${SML_LIBDIR}/`${BASENAME} $$file`; \
	done
.for file in ${SML_EXES}
	-${LN} -s ${SML_BINDIR}/${file} ${PREFIX}/bin/${file}
@


1.10
log
@Convert to the PORTNAME - PORTVERSION syntax.
@
text
@d5 1
a5 1
# $FreeBSD: ports/lang/sml-nj/Makefile,v 1.9 1999/08/25 06:35:27 obrien Exp $
d34 2
@


1.9
log
@Change Id->FreeBSD.
@
text
@a1 1
# Version required:    110
d5 1
a5 1
# $FreeBSD$
d8 12
a19 12
DISTNAME=     110.9.1-bin.x86-unix
PKGNAME=      smlnj-110.9.1
CATEGORIES=   lang
MASTER_SITES= ftp://ftp.research.bell-labs.com/dist/smlnj/working/110.9.1/ \
	      ftp://ftp.diku.dk/pub/smlnj/working/110.9.1/ \
	      ftp://sunsite.doc.ic.ac.uk/computing/programming/languages/ml/smlnj/working/110.9.1/ \
	      ftp://compiler.kaist.ac.kr/pub/sml/working/110.9.1/
DISTFILES=    110.9.1-bin.x86-unix.tar.Z 110.9.1-cm.tar.Z 110.9.1-cml.tar.Z \
	      110.9.1-config.tar.Z 110.9.1-eXene.tar.Z \
	      110.9.1-ml-burg.tar.Z 110.9.1-ml-lex.tar.Z 110.9.1-ml-yacc.tar.Z \
	      110.9.1-runtime.tar.Z 110.9.1-smlnj-c.tar.Z \
	      110.9.1-smlnj-lib.tar.Z
d21 1
a21 1
MAINTAINER=   jkoshy@@freebsd.org
d30 4
a33 4
DIST_SUBDIR=  sml-nj
NO_WRKSUBDIR= yes
EXTRACT_ONLY= 110.9.1-config.tar.Z
USE_GMAKE=    yes
d35 5
a39 5
SML_BASE=     ${PREFIX}/lib/sml-nj
SML_LIBDIR=   ${SML_BASE}/lib
SML_BINDIR=   ${SML_BASE}/bin
SML_SRCDIR=   ${SML_BASE}/src
SML_EXES=     ml-burg ml-lex ml-yacc sml
@


1.8
log
@awk -> ${AWK}
basename -> ${BASENAME}
cat -> ${CAT}
cp -> ${CP}
ldconfig -> ${LDCONFIG}
mkdir -> ${MKDIR}
@
text
@d6 1
a6 1
# $Id: Makefile,v 1.7 1999/08/22 18:58:55 mharo Exp $
@


1.7
log
@chmod -> ${CHMOD}
chown -> ${CHOWN}
@
text
@d6 1
a6 1
# $Id: Makefile,v 1.6 1999/02/02 04:18:52 jkoshy Exp $
d73 1
a73 1
			${SML_LIBDIR}/`basename $$file`; \
@


1.6
log
@Forced commit to record unbreaking for ELF.
@
text
@d6 1
a6 1
# $Id: Makefile,v 1.5 1999/02/02 03:52:32 jkoshy Exp $
d66 1
a66 1
	chmod 755 ${SML_BINDIR}/.run-sml
@


1.5
log
@Unbreak for ELF.
@
text
@d6 1
a6 1
# $Id: Makefile,v 1.4 1998/11/22 04:46:10 jkoshy Exp $
@


1.4
log
@Clean up MASTER_SITES.  Remove unneeded patch.
@
text
@d6 1
a6 1
# $Id: Makefile,v 1.3 1998/11/20 08:14:12 jkoshy Exp $
a23 1
BROKEN_ELF=   build error
d48 3
a50 1
	cd ${WRKDIR} && unset PWD && ./config/install.sh
@


1.3
log
@Upgrade to v110.9.1.  Unbreak.
@
text
@d6 1
a6 1
# $Id: Makefile,v 1.2 1998/07/20 07:56:58 jkoshy Exp $
a12 2
	      ftp://rodin.stanford.edu/pub/smlnj/working/110.9.1/ \
	      ftp://flint.cs.yale.edu/pub/smlnj/working/110.9.1/ \
a13 1
	      ftp://ftp.cl.cam.ac.uk/MIRRORED/smlnj/working/110.9.1/ \
a14 1
	      ftp://ftp.ntua.gr/pub/lang/smlnj/working/110.9.1/ \
d23 8
@


1.2
log
@Mark port as BROKEN till issues on library source paths, usage of the
built in CM (Compilation Manager) etc. are understood and resolved.
@
text
@d6 1
a6 1
# $Id: Makefile,v 1.1.1.1 1998/07/15 10:05:42 jkoshy Exp $
d9 2
a10 2
DISTNAME=     110-bin.x86-unix
PKGNAME=      smlnj-110
d12 13
a24 13
MASTER_SITES= ftp://ftp.research.bell-labs.com/dist/smlnj/release/110/ \
	      ftp://rodin.stanford.edu/pub/smlnj/release/110/ \
	      ftp://flint.cs.yale.edu/pub/smlnj/release/110/ \
	      ftp://ftp.diku.dk/pub/smlnj/release/110/ \
	      ftp://ftp.cl.cam.ac.uk/MIRRORED/smlnj/release/110/ \
	      ftp://sunsite.doc.ic.ac.uk/computing/programming/languages/ml/smlnj/release/110/ \
	      ftp://ftp.ntua.gr/pub/lang/smlnj/release/110/ \
	      ftp://compiler.kaist.ac.kr/pub/sml/release/110/
DISTFILES=    110-bin.x86-unix.tar.Z 110-cm.tar.Z 110-cml.tar.Z \
	      110-config.tar.Z 110-eXene.tar.Z \
	      110-ml-burg.tar.Z 110-ml-lex.tar.Z 110-ml-yacc.tar.Z \
	      110-runtime.tar.Z 110-sml-nj.tar.Z 110-smlnj-c.tar.Z \
	      110-smlnj-lib.tar.Z
d30 1
a30 1
EXTRACT_ONLY= 110-config.tar.Z
d37 1
a37 1
SML_EXES=     ml-burg ml-lex ml-yacc sml sml-cm
d39 3
a41 1
BROKEN=       Need to install documentation and library sources.
d45 1
a45 1
	cd ${WRKDIR} && ./config/install.sh
d47 8
d56 1
a56 2
	${MKDIR} ${SML_BASE}
	${MKDIR} ${SML_BINDIR}
d58 1
a58 1
	${RM} ${SML_BINDIR}/.run-sml
d62 8
@


1.1
log
@Initial revision
@
text
@d6 1
a6 1
# $Id$
d38 2
@


1.1.1.1
log
@A Standard ML implementation from Bell Labs.
@
text
@@
