diff --git a/.cvsignore b/.cvsignore index e69de29..3850afe 100644 --- a/.cvsignore +++ b/.cvsignore @@ -0,0 +1,3 @@ +mlton-20051202-1.src.tgz +mlton-bootstrap.i386.tar.bz2 +mlton-bootstrap.ppc.tar.bz2 diff --git a/mlton-debuginfo.patch b/mlton-debuginfo.patch new file mode 100644 index 0000000..3a398fd --- /dev/null +++ b/mlton-debuginfo.patch @@ -0,0 +1,45 @@ +diff -ur mlton-20051202~/bytecode/Makefile mlton-20051202/bytecode/Makefile +--- mlton-20051202~/bytecode/Makefile 2005-11-30 13:36:52.000000000 -0500 ++++ mlton-20051202/bytecode/Makefile 2006-06-25 18:14:13.000000000 -0400 +@@ -10,7 +10,7 @@ + all: interpret.o interpret-gdb.o print-opcodes + + CC = gcc -std=gnu99 +-CFLAGS = -fomit-frame-pointer -I../runtime -I../include -Wall ++CFLAGS = -fomit-frame-pointer -g -I../runtime -I../include -Wall + + ifeq ($(TARGET_ARCH), amd64) + CFLAGS += -mtune=opteron -m32 +diff -ur mlton-20051202~/Makefile mlton-20051202/Makefile +--- mlton-20051202~/Makefile 2005-11-30 22:27:06.000000000 -0500 ++++ mlton-20051202/Makefile 2006-06-25 18:13:45.000000000 -0400 +@@ -402,17 +402,6 @@ + if $(GZIP_MAN); then \ + cd $(TMAN) && $(GZIP) $(MAN_PAGES); \ + fi +- case "$(TARGET_OS)" in \ +- cygwin|darwin|solaris) \ +- ;; \ +- *) \ +- for f in $(TLIB)/$(AOUT)$(EXE) $(TBIN)/$(LEX)$(EXE) \ +- $(TBIN)/$(NLFFIGEN)$(EXE) $(TBIN)/$(PROF)$(EXE) \ +- $(TBIN)/$(YACC)$(EXE); do \ +- strip --remove-section=.comment \ +- --remove-section=.note $$f; \ +- done \ +- esac + + .PHONY: install-docs + install-docs: +diff -ur mlton-20051202~/runtime/Makefile mlton-20051202/runtime/Makefile +--- mlton-20051202~/runtime/Makefile 2005-11-29 18:05:07.000000000 -0500 ++++ mlton-20051202/runtime/Makefile 2006-06-25 18:13:45.000000000 -0400 +@@ -49,7 +49,7 @@ + endif + + CC = gcc -std=gnu99 +-CFLAGS = -O2 -Wall -I. -Iplatform -D_FILE_OFFSET_BITS=64 $(FLAGS) ++CFLAGS = -O2 -Wall -g -I. -Iplatform -D_FILE_OFFSET_BITS=64 $(FLAGS) + DEBUGFLAGS = $(CFLAGS) -gstabs+ -g2 + + CFILES = \ diff --git a/mlton-pdf-docs.patch b/mlton-pdf-docs.patch new file mode 100644 index 0000000..70e703a --- /dev/null +++ b/mlton-pdf-docs.patch @@ -0,0 +1,64 @@ +diff -ur mlton-20051202~/Makefile mlton-20051202/Makefile +--- mlton-20051202~/Makefile 2005-11-30 22:27:06.000000000 -0500 ++++ mlton-20051202/Makefile 2006-06-19 23:26:55.000000000 -0400 +@@ -431,8 +431,8 @@ + ; do \ + $(CP) $(SRC)/regression/$$f.sml $(TEXM)/; \ + done +- $(GZIP) -c $(LEX)/$(LEX).ps >$(TDOC)/$(LEX).ps.gz +- $(GZIP) -c $(YACC)/$(YACC).ps >$(TDOC)/$(YACC).ps.gz ++ $(CP) $(LEX)/$(LEX).pdf $(TDOC) ++ $(CP) $(YACC)/$(YACC).pdf $(TDOC) + find $(TDOC)/ -name .svn -type d | xargs rm -rf + find $(TDOC)/ -name .ignore -type f | xargs rm -rf + find $(TEXM)/ -name .svn -type d | xargs rm -rf +diff -ur mlton-20051202~/mllex/Makefile mlton-20051202/mllex/Makefile +--- mlton-20051202~/mllex/Makefile 2005-10-11 16:47:54.000000000 -0400 ++++ mlton-20051202/mllex/Makefile 2006-06-19 22:39:39.000000000 -0400 +@@ -47,7 +47,7 @@ + ../bin/clean + + .PHONY: docs +-docs: mllex.ps ++docs: mllex.pdf + + .PHONY: test + test: $(NAME) +diff -ur mlton-20051202~/mlyacc/doc/Makefile mlton-20051202/mlyacc/doc/Makefile +--- mlton-20051202~/mlyacc/doc/Makefile 2005-11-06 15:04:36.000000000 -0500 ++++ mlton-20051202/mlyacc/doc/Makefile 2006-06-19 22:47:41.000000000 -0400 +@@ -6,7 +6,7 @@ + # See the file MLton-LICENSE for details. + ## + +-all: mlyacc.ps ++all: mlyacc.pdf + + html/index.html: $(TEX_FILES) + mkdir -p html +diff -ur mlton-20051202~/mlyacc/Makefile mlton-20051202/mlyacc/Makefile +--- mlton-20051202~/mlyacc/Makefile 2005-10-11 16:48:34.000000000 -0400 ++++ mlton-20051202/mlyacc/Makefile 2006-06-19 22:48:23.000000000 -0400 +@@ -38,15 +38,21 @@ + doc/mlyacc.ps: + $(MAKE) -C doc mlyacc.ps + ++doc/mlyacc.pdf: ++ $(MAKE) -C doc mlyacc.pdf ++ + mlyacc.ps: doc/mlyacc.ps + cp doc/mlyacc.ps . + ++mlyacc.pdf: doc/mlyacc.pdf ++ cp doc/mlyacc.pdf . ++ + .PHONY: clean + clean: + ../bin/clean + + .PHONY: docs +-docs: mlyacc.ps ++docs: mlyacc.pdf + + .PHONY: test + test: $(NAME) diff --git a/mlton.spec b/mlton.spec new file mode 100644 index 0000000..188e7b1 --- /dev/null +++ b/mlton.spec @@ -0,0 +1,119 @@ +Name: mlton +Version: 20051202 +Release: 7%{?dist} +Summary: Optimizing compiler for Standard ML + +Group: Development/Languages +License: BSD style and MIT +URL: http://mlton.org/ +Source0: http://mlton.org/pages/Download/attachments/mlton-%{version}-1.src.tgz + +# XXX for bootstrapping only, taken from mlton_20060213-1 from Debian +Source1: mlton-bootstrap.i386.tar.bz2 +Source2: mlton-bootstrap.ppc.tar.bz2 + +Patch0: mlton-pdf-docs.patch +Patch1: mlton-debuginfo.patch + + +BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) + +# XXX put mlton back into BuildRequires after bootstrap +BuildRequires: gmp-devel htmldoc tetex-latex which +Requires: gmp-devel gcc + +# not yet available for 64-bit arch +ExcludeArch: x86_64 + + +# description taken from the Debian package by Stephen Weeks +%description +MLton is a whole-program optimizing compiler for Standard ML. MLton +generates standalone executables with excellent runtime performance, +is SML 97 compliant, and has a complete basis library. MLton has +source-level profiling, a fast C FFI, an interface to the GNU +multiprecision library, and lots of useful libraries. + + +%prep +%setup -q + +# build documentation as PDF +%patch -P 0 -p1 +# enable -g and disable strip so debuginfo packages work +%patch -P 1 -p1 + +# set correct version of PDF guide until this is fixed upstream +sed -i 's/\(^version=\).*$/\1%{version}/g' bin/make-pdf-guide + +# XXX bootstrap only +%ifarch i386 +%setup -T -D -q -a 1 +%endif +%ifarch ppc +%setup -T -D -q -a 2 +%endif +sed -i 's/\(^lib=\).*$/\1\$MLTON_BOOTSTRAP_DIR\/usr\/lib\/mlton/g' \ + bootstrap/usr/bin/mlton + + +%build +# XXX bootstrap +export MLTON_BOOTSTRAP_DIR=$(pwd)/bootstrap +export PATH="${PATH}":$MLTON_BOOTSTRAP_DIR/usr/bin + +make + + +%install +rm -rf $RPM_BUILD_ROOT +make install DESTDIR=$RPM_BUILD_ROOT MAN_PREFIX_EXTRA=/share \ + TDOC=$RPM_BUILD_ROOT%{_docdir}/%{name}-%{version} + +# remove unecessary regression test +rm -rf $RPM_BUILD_ROOT%{_libdir}/mlton/sml/ckit-lib/regression + +# move some documentation around +mv $RPM_BUILD_ROOT%{_libdir}/mlton/sml/ckit-lib/doc \ + $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/ckit-lib +mv $RPM_BUILD_ROOT%{_libdir}/mlton/sml/smlnj-lib/Doc \ + $RPM_BUILD_ROOT%{_docdir}/%{name}-%{version}/smlnj-lib + + +%clean +rm -rf $RPM_BUILD_ROOT + + +%files +%defattr(-,root,root,-) +%doc %{_docdir}/%{name}-%{version} +%{_bindir}/ml* +%{_libdir}/mlton +%{_mandir}/man1/* + +%changelog +* Sat Jul 1 2006 Adam Goode - 20051202-7 +- Fix macro in changelog +- Remove mixed use of tabs and spaces + +* Sun Jun 25 2006 Adam Goode - 20051202-6 +- Build runtime with -g, but not -gstabs+ +- Re-enable debuginfo packages + +* Wed Jun 21 2006 Adam Goode - 20051202-5 +- Disable empty debuginfo packages + +* Wed Jun 21 2006 Adam Goode - 20051202-4 +- Be more specific about license +- Add "which" to BuildRequires until everyone is running new mock + +* Tue Jun 20 2006 Adam Goode - 20051202-3 +- Create PDF documentation for mlyacc and mllex (instead of .ps.gz) +- Move ckit-lib/doc and smlnj-lib/Doc to %%{_docdir} +- Remove regression files from ckit + +* Thu Jun 8 2006 Adam Goode - 20051202-2 +- Change to use bootstrap + +* Wed Jun 7 2006 Adam Goode - 20051202-1 +- Initial release for FC5 diff --git a/sources b/sources index e69de29..3cb09e2 100644 --- a/sources +++ b/sources @@ -0,0 +1,3 @@ +766b25e39dff36da5f3ed81effd5471b mlton-20051202-1.src.tgz +34f8bf4c11cca4867beb3bccab04b0a5 mlton-bootstrap.i386.tar.bz2 +16358b27a8f86ec1aede640fff1c77ff mlton-bootstrap.ppc.tar.bz2