moscow-ml stable port information

Package: moscow-ml
Version: 2.01
Revision: 1
Maintainer: Jesse Alama
Source: ftp://ftp.dina.kvl.dk/pub/mosml/mos201src.tar.gz
Source-MD5: 74aaaf988201fe92a9dbfbcb1e646f70
SourceDirectory: mosml
BuildDepends: fink (>= 0.24.12)
PatchFile: %n.patch
PatchFile-MD5: 50995ac95f66201202b387ba6871b7e8
PatchScript: sed 's|@PREFIX@|%p|g' < %{PatchFile} | patch -p1
NoSetCXXFLAGS: true
CompileScript: cd src/; make world CC=gcc CPP="/usr/bin/cpp -P -traditional -Dunix -Umsdos" LD=gcc
InstallScript: <<
cd src/; make install DESTDIR=%d
rm -f %i/lib/moscow-ml/camlrunm
ln -sf %p/bin/camlrunm %i/lib/moscow-ml/camlrunm
<<
DocFiles: README copyrght/*
Description: Light-weight implementation of Standard ML
DescDetail: <<
Moscow ML is a light-weight implementation of Standard ML (SML),
a strict functional language widely used in teaching and research.
Version 2.01 implements the full SML language, including SML
Modules, and much of the SML Basis Library.
<<
DescPort: <<

Some include files conflict with the C++ standard library.

The package incorporates some patches implementing support for DESTDIR
in the installation scripts. These were taken from the Moscow ML
homepage.

<<
License: GPL
Homepage: http://www.dina.kvl.dk/~sestoft/mosml.html

moscow-ml stable port .patch

diff -Naur --exclude='*~' mosml/src/Makefile mosml.fink/src/Makefile
--- mosml/src/Makefile 2000-07-18 07:16:44.000000000 -0700
+++ mosml.fink/src/Makefile 2007-08-26 21:23:43.000000000 -0700
@@ -45,11 +45,11 @@

# Install the Mosml system
install:
- test -d $(BINDIR) || mkdir -p $(BINDIR)
- test -d $(LIBDIR) || mkdir -p $(LIBDIR)
- test -d $(INCDIR) || mkdir -p $(INCDIR)
- test -d $(DOCDIR) || mkdir -p $(DOCDIR)
- test -d $(TOOLDIR) || mkdir -p $(TOOLDIR)
+ test -d $(DESTDIR)$(BINDIR) || mkdir -p $(DESTDIR)$(BINDIR)
+ test -d $(DESTDIR)$(LIBDIR) || mkdir -p $(DESTDIR)$(LIBDIR)
+ test -d $(DESTDIR)$(INCDIR) || mkdir -p $(DESTDIR)$(INCDIR)
+ test -d $(DESTDIR)$(DOCDIR) || mkdir -p $(DESTDIR)$(DOCDIR)
+ test -d $(DESTDIR)$(TOOLDIR) || mkdir -p $(DESTDIR)$(TOOLDIR)
cd runtime; make install
cd config; make install
cd launch; make all install
@@ -58,7 +58,7 @@
cd compiler; make install
cd toolssrc; make install
cd lex; make install
- (cd $(INCDIR)/..; rm -f config; ln -s include config)
+ (cd $(DESTDIR)$(INCDIR)/..; rm -f config; ln -s moscow-ml config)
cd doc; make install

# Remove all generated files
diff -Naur --exclude='*~' mosml/src/Makefile.inc mosml.fink/src/Makefile.inc
--- mosml/src/Makefile.inc 2004-01-19 07:03:37.000000000 -0800
+++ mosml.fink/src/Makefile.inc 2007-08-26 19:37:53.000000000 -0700
@@ -2,7 +2,7 @@

# Where to install stuff

-MOSMLHOME=${HOME}/mosml
+MOSMLHOME=@PREFIX@/lib/moscow-ml

# Various utility programs
INSTALL_PROGRAM=cp
@@ -15,24 +15,31 @@

ADDPRIMS=dynlib.c
ADDOBJS=dynlib.o
-ADDRUNLIBS=-ldl
-ADDRUNCFLAGS=
-ADDDYNLIBCFLAGS=
+ADDRUNLIBS=-L@PREFIX@/lib -ldl
+ADDRUNCFLAGS=-I@PREFIX@/include
+ADDDYNLIBCFLAGS=-fno-common

# To compile the runtime system camlrunm under Cygwin with support for
# dynamically loadable libraries (DDLs), uncomment these:

-ADDPRIMS=dynlib.c
-ADDOBJS=dynlib.o
-ADDRUNCFLAGS=
-ADDDYNLIBCFLAGS=
+#ADDPRIMS=dynlib.c
+#ADDOBJS=dynlib.o
+#ADDRUNCFLAGS=
+#ADDDYNLIBCFLAGS=

# For Linux (x86 or Alpha), use:
# ------------------------------
-CPP=/lib/cpp -P -traditional -Dunix -Umsdos
-STRIP=strip
-LD=gcc -rdynamic
-DYNLD=ld -shared
+#CPP=cpp -P -traditional -Dunix -Umsdos
+#STRIP=strip
+#LD=gcc -rdynamic
+#DYNLD=ld -shared
+
+# For Mac OS X, use:
+# ------------------------------
+CPP=/usr/bin/cpp -P -traditional -Dunix -Umsdos
+STRIP=echo
+LD=cc
+DYNLD=cc -bundle

# For Cygwin 20.1, use:
# ---------------------
@@ -113,12 +120,13 @@
# INCDIR contains the runtime system header files (for compiling dynlibs)
# DOCDIR contains documentation

-BINDIR=${MOSMLHOME}/bin
-LIBDIR=${MOSMLHOME}/lib
-INCDIR=${MOSMLHOME}/include
-DOCDIR=${MOSMLHOME}/doc
-TOOLDIR=${MOSMLHOME}/tools
-# LIBDIR=${MOSMLHOME}/lib/moscow_ml
+BINDIR=@PREFIX@/bin
+LIBDIR=@PREFIX@/lib/moscow-ml
+INCDIR=@PREFIX@/include/moscow-ml
+DOCDIR=@PREFIX@/share/doc/moscow-ml
+TOOLDIR=${LIBDIR}/tools
+#LIBDIR=${MOSMLHOME}/lib
+#INCDIR=${MOSMLHOME}/include
# TOOLDIR=${MOSMLHOME}/libexec/moscow_ml

CAMLRT=../runtime
@@ -142,7 +150,7 @@
# For cross-compiling to Win 32 (from Linux) (development only)
# CPP=/lib/cpp -P -traditional -Umsdos -Uunix -Dwin32

-CC=gcc
+CC=gcc -no-cpp-precomp

.SUFFIXES :
.SUFFIXES : .sml .sig .ui .uo .mlp .lex .c .o
diff -Naur --exclude='*~' mosml/src/compiler/Makefile mosml.fink/src/compiler/Makefile
--- mosml/src/compiler/Makefile 2000-06-27 07:46:19.000000000 -0700
+++ mosml.fink/src/compiler/Makefile 2007-08-26 19:28:39.000000000 -0700
@@ -117,9 +117,9 @@
rm -f Makefile.bak

install:
- ${INSTALL_DATA} mosmlcmp $(LIBDIR)
- ${INSTALL_DATA} mosmllnk $(LIBDIR)
- ${INSTALL_DATA} mosmltop $(LIBDIR)
+ ${INSTALL_DATA} mosmlcmp $(DESTDIR)$(LIBDIR)
+ ${INSTALL_DATA} mosmllnk $(DESTDIR)$(LIBDIR)
+ ${INSTALL_DATA} mosmltop $(DESTDIR)$(LIBDIR)

promote:
test -f ../mosmlcmp.orig || cp ../mosmlcmp ../mosmlcmp.orig
diff -Naur --exclude='*~' mosml/src/config/Makefile mosml.fink/src/config/Makefile
--- mosml/src/config/Makefile 2000-02-16 07:36:57.000000000 -0800
+++ mosml.fink/src/config/Makefile 2007-08-26 19:28:53.000000000 -0700
@@ -4,7 +4,7 @@
@echo "Run 'sh autoconf' or 'sh autoconf gcc' or ..."

install:
- $(INSTALL_PROGRAM) m.h s.h $(INCDIR)
+ $(INSTALL_PROGRAM) m.h s.h $(DESTDIR)$(INCDIR)

clean scratch:
rm -f m.h s.h
diff -Naur --exclude='*~' mosml/src/doc/Makefile mosml.fink/src/doc/Makefile
--- mosml/src/doc/Makefile 2000-06-29 07:44:27.000000000 -0700
+++ mosml.fink/src/doc/Makefile 2007-08-26 19:30:45.000000000 -0700
@@ -48,10 +48,10 @@
psnup -pa4 -2 mosmllib.ps mosmllib2up.ps

install:
- cp mosmlref.pdf $(DOCDIR)
- cp manual.pdf $(DOCDIR)
- cp mosmllib.pdf $(DOCDIR)
- cp mosmllib2up.pdf $(DOCDIR)
+ cp mosmlref.pdf $(DESTDIR)$(DOCDIR)
+ cp manual.pdf $(DESTDIR)$(DOCDIR)
+ cp mosmllib.pdf $(DESTDIR)$(DOCDIR)
+ cp mosmllib2up.pdf $(DESTDIR)$(DOCDIR)
cd helpsigs; make install

clean:
diff -Naur --exclude='*~' mosml/src/doc/helpsigs/Makefile mosml.fink/src/doc/helpsigs/Makefile
--- mosml/src/doc/helpsigs/Makefile 2000-08-02 05:06:16.000000000 -0700
+++ mosml.fink/src/doc/helpsigs/Makefile 2007-08-26 19:30:14.000000000 -0700
@@ -22,10 +22,10 @@
makebase $(LIBDIR)

install:
- cp helpsigs.val $(LIBDIR)
- test -d $(DOCDIR)/mosmllib || mkdir -p $(DOCDIR)/mosmllib
- cp htmlsigs/*.html $(DOCDIR)/mosmllib
- cp index.html $(DOCDIR)/mosmllib
+ cp helpsigs.val $(DESTDIR)$(LIBDIR)
+ test -d $(DESTDIR)$(DOCDIR)/mosmllib || mkdir -p $(DESTDIR)$(DOCDIR)/mosmllib
+ cp htmlsigs/*.html $(DESTDIR)$(DOCDIR)/mosmllib
+ cp index.html $(DESTDIR)$(DOCDIR)/mosmllib

depend: Lexer.sml Parser.sml
rm -f Makefile.bak
diff -Naur --exclude='*~' mosml/src/launch/Makefile mosml.fink/src/launch/Makefile
--- mosml/src/launch/Makefile 2000-01-21 02:07:13.000000000 -0800
+++ mosml.fink/src/launch/Makefile 2007-08-26 19:32:08.000000000 -0700
@@ -8,18 +8,18 @@
# header cannot be generated until camlrunm is installed in $(BINDIR)...

install:
- (echo "#!$(BINDIR)/camlrunm"; \
+ (echo "#!$$(DESTDIR)(BINDIR)/camlrunm"; \
echo "exit 2"; \
cat testprog) > /tmp/testscr
chmod a+x /tmp/testscr
sh -c 'if sh -c /tmp/testscr 2>/dev/null; \
- then echo "#!$(BINDIR)/camlrunm" > $(LIBDIR)/header; \
- else ${INSTALL_PROGRAM} camlexec$(EXE) $(LIBDIR)/header; \
+ then echo "#!$(DESTDIR)$(BINDIR)/camlrunm" > $(DESTDIR)$(LIBDIR)/header; \
+ else ${INSTALL_PROGRAM} camlexec$(EXE) $(DESTDIR)$(LIBDIR)/header; \
fi'
rm -f /tmp/testscr
for script in mosml mosmlc mosmllex; do \
- ${INSTALL_SCRIPT} $$script $(BINDIR)/$$script; \
- chmod a+x $(BINDIR)/$$script; \
+ ${INSTALL_SCRIPT} $$script $(DESTDIR)$(BINDIR)/$$script; \
+ chmod a+x $(DESTDIR)$(BINDIR)/$$script; \
done

mosml: mosml.tpl
diff -Naur --exclude='*~' mosml/src/lex/Makefile mosml.fink/src/lex/Makefile
--- mosml/src/lex/Makefile 2000-01-24 13:59:00.000000000 -0800
+++ mosml.fink/src/lex/Makefile 2007-08-26 19:32:50.000000000 -0700
@@ -37,7 +37,7 @@
cd test; make clean

install:
- ${INSTALL_DATA} mosmllex $(LIBDIR)
+ ${INSTALL_DATA} mosmllex $(DESTDIR)$(LIBDIR)

Grammar.sml Grammar.sig: Grammar.grm
$(MOSMLYACC) Grammar.grm
diff -Naur --exclude='*~' mosml/src/mosmllib/Makefile mosml.fink/src/mosmllib/Makefile
--- mosml/src/mosmllib/Makefile 2000-06-27 09:38:25.000000000 -0700
+++ mosml.fink/src/mosmllib/Makefile 2007-08-26 19:39:38.000000000 -0700
@@ -39,14 +39,14 @@
rm -f Vector.sml Word.sml Word8Array.sml Word8Vector.sml Weak.sml

install:
- ${INSTALL_DATA} README $(LIBDIR)
- ${INSTALL_DATA} *.ui $(LIBDIR)
- ${INSTALL_DATA} *.uo $(LIBDIR)
- ${INSTALL_DATA} *.sig $(LIBDIR)
- ${INSTALL_DATA} General.fke $(LIBDIR)/General.sig
- ${INSTALL_DATA} Meta.fke $(LIBDIR)/Meta.sig
- rm -f $(LIBDIR)/camlrunm
- ln -s $(BINDIR)/camlrunm $(LIBDIR)/camlrunm
+ ${INSTALL_DATA} README $(DESTDIR)$(LIBDIR)
+ ${INSTALL_DATA} *.ui $(DESTDIR)$(LIBDIR)
+ ${INSTALL_DATA} *.uo $(DESTDIR)$(LIBDIR)
+ ${INSTALL_DATA} *.sig $(DESTDIR)$(LIBDIR)
+ ${INSTALL_DATA} General.fke $(DESTDIR)$(LIBDIR)/General.sig
+ ${INSTALL_DATA} Meta.fke $(DESTDIR)$(LIBDIR)/Meta.sig
+ rm -f $(DESTDIR)$(LIBDIR)/camlrunm
+ ln -s $(DESTDIR)$(BINDIR)/camlrunm $(DESTDIR)$(LIBDIR)/camlrunm

depend: Array.sml FileSys.sml Help.sml Int.sml Mosml.sml Path.sml \
Process.sml Strbase.sml Vector.sml Word.sml Word8Array.sml \
diff -Naur --exclude='*~' mosml/src/mosmlyac/Makefile mosml.fink/src/mosmlyac/Makefile
--- mosml/src/mosmlyac/Makefile 2000-01-21 02:07:13.000000000 -0800
+++ mosml.fink/src/mosmlyac/Makefile 2007-08-26 19:40:07.000000000 -0700
@@ -18,7 +18,7 @@
rm -f mosmlyac$(EXE)

install:
- ${INSTALL_PROGRAM} mosmlyac$(EXE) $(BINDIR)/mosmlyac$(EXE)
+ ${INSTALL_PROGRAM} mosmlyac$(EXE) $(DESTDIR)$(BINDIR)/mosmlyac$(EXE)

depend:

diff -Naur --exclude='*~' mosml/src/runtime/Makefile mosml.fink/src/runtime/Makefile
--- mosml/src/runtime/Makefile 2000-07-18 07:16:44.000000000 -0700
+++ mosml.fink/src/runtime/Makefile 2007-08-26 19:40:30.000000000 -0700
@@ -46,8 +46,8 @@
rm -f .debugobj/*.o

install:
- ${INSTALL_PROGRAM} camlrunm$(EXE) $(BINDIR)
- ${INSTALL_PROGRAM} *.h $(INCDIR)
+ ${INSTALL_PROGRAM} camlrunm$(EXE) $(DESTDIR)$(BINDIR)
+ ${INSTALL_PROGRAM} *.h $(DESTDIR)$(INCDIR)

primitives : $(PRIMS)
sed -n -e '/\/\* ML \*\//s/.* \([a-zA-Z0-9_][a-zA-Z0-9_]*\) *(.*/\1/p' \
diff -Naur --exclude='*~' mosml/src/toolssrc/Makefile mosml.fink/src/toolssrc/Makefile
--- mosml/src/toolssrc/Makefile 2000-01-21 02:07:13.000000000 -0800
+++ mosml.fink/src/toolssrc/Makefile 2007-08-26 19:41:01.000000000 -0700
@@ -34,7 +34,7 @@
rm -f cutdeps mosmldep

install:
- ${INSTALL_DATA} cutdeps mosmldep $(TOOLDIR)
+ ${INSTALL_DATA} cutdeps mosmldep $(DESTDIR)$(TOOLDIR)

depend: Deplex.sml Deppars.sml Mosmldep.sml
rm -f Makefile.bak


moscow-ml _unstable_ port .patch