Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 21 Mar 1999 19:59:37 -0600 (CST)
From:      Daniel Ortmann <ortmann@sparc.isl.net>
To:        FreeBSD-gnats-submit@freebsd.org
Subject:   ports/10718: a ports change for lang/ocaml
Message-ID:  <199903220159.TAA01329@pyrl.eye>

next in thread | raw e-mail | index | archive | help

>Number:         10718
>Category:       ports
>Synopsis:       a ports change for lang/ocaml
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Sun Mar 21 18:10:01 PST 1999
>Closed-Date:
>Last-Modified:
>Originator:     Daniel Ortmann
>Release:        FreeBSD 4.0-CURRENT i386
>Organization:
N/A
>Environment:

N/A

>Description:

Kiriyama Kazuhiko <kiri@kiri.toba-cmt.ac.jp> is no longer maintaining
the lang/ocaml port.  With his permission I, Daniel Ortmann
<ortmann@isl.net>, will be taking over that responsibility.

The following is a patch which should be applied to lang/ocaml to make
it current.  This update is fully functional.

There are two optional and optimized targets which do not (yet) fully
link due to Elf issues.  I will work to resolve this, hopefully within
the next couple of weeks.

>How-To-Repeat:

N/A

>Fix:

Apply patch in lang/ocaml with "-p1" flag:

diff -rc ocaml.orig/Makefile ocaml/Makefile
*** ocaml.orig/Makefile	Sat Nov 28 03:07:13 1998
--- ocaml/Makefile	Thu Mar 18 20:38:55 1999
***************
*** 6,36 ****
  # $Id: Makefile,v 1.4 1998/11/28 09:07:13 asami Exp $
  #
  
! DISTNAME=	ocaml-1.07
  CATEGORIES=	lang
! MASTER_SITES=	ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/caml-light/ \
! 		ftp://ftp.inria.fr/lang/caml-light/
  DISTFILES=	${DISTNAME}.tar.gz ${DOCFILES}
  
! MAINTAINER=	kiri@kiri.toba-cmt.ac.jp
  
  USE_XLIB=	yes
  HAS_CONFIGURE=	yes
  USE_GMAKE=	yes
  ALL_TARGET=	world bootstrap opt
  MAN1=		ocaml.1 ocamlc.1 ocamlcp.1 ocamldep.1 ocamllex.1 \
! 		ocamlopt.1 ocamlprof.1 ocamlrun.1 ocamlyacc.1
  
  CONFIGURE_ENV=	PREFIX=${PREFIX} X11BASE=${X11BASE} BATCH=${BATCH}
  
  .if !defined(NOPORTDOCS)
! DOCFILES=	${DISTNAME}-refman.html.tar.gz
  .endif
  
  post-install:
  .if !defined(NOPORTDOCS)
  	@${MKDIR} ${PREFIX}/share/doc/ocaml/html
  	@cd ${WRKDIR}/htmlman; ${INSTALL_DATA} * ${PREFIX}/share/doc/ocaml/html
  .endif
  	@strip ${PREFIX}/bin/ocamlrun ${PREFIX}/bin/ocamlyacc
  
--- 6,41 ----
  # $Id: Makefile,v 1.4 1998/11/28 09:07:13 asami Exp $
  #
  
! DISTNAME=	ocaml-2.02
  CATEGORIES=	lang
! MASTER_SITES=	ftp://ftp.inria.fr/lang/caml-light/ \
! 		ftp://ftp.kurims.kyoto-u.ac.jp/pub/lang/caml-light/
  DISTFILES=	${DISTNAME}.tar.gz ${DOCFILES}
+ EXTRACT_ONLY=	${DISTNAME}${EXTRACT_SUFX} ${DISTNAME}-refman.html${EXTRACT_SUFX}
  
! MAINTAINER=	ortmann@isl.net
  
  USE_XLIB=	yes
  HAS_CONFIGURE=	yes
  USE_GMAKE=	yes
  ALL_TARGET=	world bootstrap opt
+ # targets not yet working (due to Elf) ==> ocamlc.opt ocamlopt.opt
+ 
  MAN1=		ocaml.1 ocamlc.1 ocamlcp.1 ocamldep.1 ocamllex.1 \
! 		ocamlopt.1 ocamlprof.1 ocamlrun.1 ocamlyacc.1 ocamlmktop.1
! # manpages not yet installing (due to Elf) ==> ocamlc.opt.1 ocamlopt.opt.1
  
  CONFIGURE_ENV=	PREFIX=${PREFIX} X11BASE=${X11BASE} BATCH=${BATCH}
  
  .if !defined(NOPORTDOCS)
! DOCFILES=	${DISTNAME}-refman.html.tar.gz ${DISTNAME}-refman.ps.gz
  .endif
  
  post-install:
  .if !defined(NOPORTDOCS)
  	@${MKDIR} ${PREFIX}/share/doc/ocaml/html
  	@cd ${WRKDIR}/htmlman; ${INSTALL_DATA} * ${PREFIX}/share/doc/ocaml/html
+ 	@cp ${DISTDIR}/${DISTNAME}-refman.ps.gz ${PREFIX}/share/doc/ocaml
  .endif
  	@strip ${PREFIX}/bin/ocamlrun ${PREFIX}/bin/ocamlyacc
  
diff -rc ocaml.orig/files/md5 ocaml/files/md5
*** ocaml.orig/files/md5	Sat Feb 21 09:49:31 1998
--- ocaml/files/md5	Thu Mar 18 12:33:15 1999
***************
*** 1,2 ****
! MD5 (ocaml-1.07.tar.gz) = c5bf08086a866b80f55a91a4468f20b7
! MD5 (ocaml-1.07-refman.html.tar.gz) = 045be9ae7ca6c19a34bc1912b4d7f272
--- 1,3 ----
! MD5 (ocaml-2.02.tar.gz) = 164765dc8093727903f4111500fb30cc
! MD5 (ocaml-2.02-refman.ps.gz) = af6bae149d72674d50ab115e38dcf90c
! MD5 (ocaml-2.02-refman.html.tar.gz) = d8558bcf77a9c8600576d02846eaff5d
diff -rc ocaml.orig/patches/patch-aa ocaml/patches/patch-aa
*** ocaml.orig/patches/patch-aa	Sat Feb 21 09:49:36 1998
--- ocaml/patches/patch-aa	Thu Mar 18 13:48:47 1999
***************
*** 1,130 ****
! --- configure.orig	Tue Dec  9 18:13:38 1997
! +++ configure	Tue Dec 23 21:46:31 1997
! @@ -13,9 +13,9 @@
!  
!  # $Id: patch-aa,v 1.1 1998/02/21 15:49:36 steve Exp $
!  
! -bindir=/usr/local/bin
! -libdir=/usr/local/lib/ocaml
! -mandir=/usr/local/man/man1
! +bindir='${PREFIX}/bin'
! +libdir='${PREFIX}/lib/ocaml'
! +mandir='${PREFIX}/man/man1'
!  manext=1
!  host_type=unknown
!  cc=''
! @@ -35,7 +35,7 @@
!          libdir=$2; shift;;
!      -mandir|--mandir)
!          mandir=$2
! -        manext=`echo $mandir | sed -e 's/^.*\(.\)$/\1/'`
! +        manext=`eval echo $mandir | sed -e 's/^.*\(.\)$/\1/'`
!          shift;;
!      -host*|--host*)
!          host_type=$2; shift;;
! @@ -56,15 +56,15 @@
!  
!  # Sanity checks
!  
! -case "$bindir" in
! +case "`eval echo $bindir`" in
!    /*) ;;
!     *) echo "The -bindir directory must be absolute." 1>&2; exit 2;;
!  esac
! -case "$libdir" in
! +case "`eval echo $libdir`" in
!    /*) ;;
!     *) echo "The -libdir directory must be absolute." 1>&2; exit 2;;
!  esac
! -case "$mandir" in
! +case "`eval echo $mandir`" in
!    /*) ;;
!     *) echo "The -mandir directory must be absolute." 1>&2; exit 2;;
!  esac
! @@ -110,6 +110,8 @@
!  
!  # Check for buggy versions of GCC
!  
! +if [ ! "${BATCH}" ]; then
! +
!  case "$host,$cc" in
!    i[3456]86-*-*,gcc*)
!      case `$cc --version` in
! @@ -132,6 +134,8 @@
!      esac;;
!  esac
!  
! +fi
! +
!  # Configure the bytecode compiler
!  
!  bytecc="$cc"
! @@ -338,9 +342,9 @@
!    echo "#! appears to work in shell scripts"
!    case "$host" in
!      *-*-sunos*)
! -      if test `echo $bindir/ocamlrun | wc -c` -gt 32; then
! +      if test `eval echo $bindir/ocamlrun | wc -c` -gt 32; then
!          echo "We won't use it, though, because the path"
! -        echo "      $bindir/ocamlrun"
! +        eval echo "      $bindir/ocamlrun"
!          echo "is too long (more than 32 characters -- some kernels don't support this)"
!          echo "SHARPBANGSCRIPTS=false" >> Makefile
!        else
! @@ -620,14 +624,14 @@
!  x11_link="not found"
!  
!  for dir in $x11_include_dir \
! -  /usr/X11R6/include /usr/X11R5/include /usr/X11R4/include \
! +  ${X11BASE}/include /usr/X11R5/include /usr/X11R4/include \
!    /usr/include/X11R6 /usr/include/X11R5 /usr/include/X11R4 \
! -  /usr/local/X11R6/include /usr/local/X11R5/include /usr/local/X11R4/include \
! -  /usr/local/include/X11R6 /usr/local/include/X11R5 /usr/local/include/X11R4 \
! -  /usr/X11/include /usr/include/X11 /usr/local/X11/include \
! -  /usr/local/include/X11 /usr/X386/include /usr/x386/include \
! -  /usr/XFree86/include/X11 /usr/include /usr/local/include \
! -  /usr/unsupported/include /usr/athena/include /usr/local/x11r5/include \
! +  ${PREFIX}/X11R6/include ${PREFIX}/X11R5/include ${PREFIX}/X11R4/include \
! +  ${PREFIX}/include/X11R6 ${PREFIX}/include/X11R5 ${PREFIX}/include/X11R4 \
! +  /usr/X11/include /usr/include/X11 ${PREFIX}/X11/include \
! +  ${PREFIX}/include/X11 /usr/X386/include /usr/x386/include \
! +  /usr/XFree86/include/X11 /usr/include ${PREFIX}/include \
! +  /usr/unsupported/include /usr/athena/include ${PREFIX}/x11r5/include \
!    /usr/lpp/Xamples/include /usr/openwin/include /usr/openwin/share/include \
!    /opt/X11R6/include /opt/X11R5/include
!  do
! @@ -638,14 +642,14 @@
!  done
!  
!  for dir in $x11_lib_dir \
! -  /usr/X11R6/lib /usr/X11R5/lib /usr/X11R4/lib \
! +  ${X11BASE}/lib /usr/X11R5/lib /usr/X11R4/lib \
!    /usr/lib/X11R6 /usr/lib/X11R5 /usr/lib/X11R4 \
! -  /usr/local/X11R6/lib /usr/local/X11R5/lib /usr/local/X11R4/lib \
! -  /usr/local/lib/X11R6 /usr/local/lib/X11R5 /usr/local/lib/X11R4 \
! -  /usr/X11/lib /usr/lib/X11 /usr/local/X11/lib \
! -  /usr/local/lib/X11 /usr/X386/lib /usr/x386/lib \
! -  /usr/XFree86/lib/X11 /usr/lib /usr/local/lib \
! -  /usr/unsupported/lib /usr/athena/lib /usr/local/x11r5/lib \
! +  ${PREFIX}/X11R6/lib ${PREFIX}/X11R5/lib ${PREFIX}/X11R4/lib \
! +  ${PREFIX}/lib/X11R6 ${PREFIX}/lib/X11R5 ${PREFIX}/lib/X11R4 \
! +  /usr/X11/lib /usr/lib/X11 ${PREFIX}/X11/lib \
! +  ${PREFIX}/lib/X11 /usr/X386/lib /usr/x386/lib \
! +  /usr/XFree86/lib/X11 /usr/lib ${PREFIX}/lib \
! +  /usr/unsupported/lib /usr/athena/lib ${PREFIX}/x11r5/lib \
!    /usr/lpp/Xamples/lib /usr/openwin/lib /usr/openwin/share/lib \
!    /opt/X11R6/lib /opt/X11R5/lib
!  do
! @@ -701,9 +705,9 @@
!  echo "** Configuration summary **"
!  echo
!  echo "Directories where Objective Caml will be installed:"
! -echo "	binaries.................. $bindir"
! -echo "	standard library.......... $libdir"
! -echo "	manual pages.............. $mandir (with extension .$manext)"
! +eval echo "	binaries.................. $bindir"
! +eval echo "	standard library.......... $libdir"
! +echo "	manual pages.............. `eval echo $mandir` (with extension .$manext)"
!  
!  echo "Configuration for the bytecode compiler:"
!  echo "	C compiler used........... $bytecc"
--- 1,59 ----
! *** configure.orig	Thu Mar 18 13:45:41 1999
! --- configure	Thu Mar 18 13:41:54 1999
! ***************
! *** 111,137 ****
!   
!   # Check for buggy versions of GCC
!   
! ! case "$host,$cc" in
! !   i[3456]86-*-*,gcc*)
! !     case `$cc --version` in
! !       2.7.2.1) cat <<'EOF'
! ! 
! ! WARNING: you are using gcc version 2.7.2.1 on an Intel x86 processor.
! ! This version of gcc is known to generate incorrect code for the
! ! Objective Caml runtime system on some Intel x86 machines. (The symptom
! ! is a crash of boot/ocamlc when compiling stdlib/pervasives.mli.)
! ! In particular, the version of gcc 2.7.2.1 that comes with
! ! Linux RedHat 4.x / Intel is affected by this problem.
! ! Other Linux distributions might also be affected.
! ! If you are using one of these configurations, you are strongly advised
! ! to use another version of gcc, such as 2.7.2 or 2.7.2.2, which are
! ! known to work well with Objective Caml.
! ! 
! ! Press <enter> to proceed or <interrupt> to stop.
! ! EOF
! !         read reply;;
! !     esac;;
! ! esac
!   
!   # Configure the bytecode compiler
!   
! --- 111,137 ----
!   
!   # Check for buggy versions of GCC
!   
! ! #case "$host,$cc" in
! ! #  i[3456]86-*-*,gcc*)
! ! #    case `$cc --version` in
! ! #      2.7.2.1) cat <<'EOF'
! ! #
! ! #WARNING: you are using gcc version 2.7.2.1 on an Intel x86 processor.
! ! #This version of gcc is known to generate incorrect code for the
! ! #Objective Caml runtime system on some Intel x86 machines. (The symptom
! ! #is a crash of boot/ocamlc when compiling stdlib/pervasives.mli.)
! ! #In particular, the version of gcc 2.7.2.1 that comes with
! ! #Linux RedHat 4.x / Intel is affected by this problem.
! ! #Other Linux distributions might also be affected.
! ! #If you are using one of these configurations, you are strongly advised
! ! #to use another version of gcc, such as 2.7.2 or 2.7.2.2, which are
! ! #known to work well with Objective Caml.
! ! #
! ! #Press <enter> to proceed or <interrupt> to stop.
! ! #EOF
! ! #        read reply;;
! ! #    esac;;
! ! #esac
!   
!   # Configure the bytecode compiler
!   
diff -rc ocaml.orig/pkg/COMMENT ocaml/pkg/COMMENT
*** ocaml.orig/pkg/COMMENT	Fri Jan  3 05:25:47 1997
--- ocaml/pkg/COMMENT	Thu Mar 18 12:51:15 1999
***************
*** 1 ****
! A ML language based on complete class-based objective system
--- 1 ----
! An ML language based on a complete class-based objective system
diff -rc ocaml.orig/pkg/DESCR ocaml/pkg/DESCR
*** ocaml.orig/pkg/DESCR	Sun Jul 26 02:37:01 1998
--- ocaml/pkg/DESCR	Thu Mar 18 12:58:24 1999
***************
*** 1,3 ****
--- 1,5 ----
+ OVERVIEW:
+ 
  Objective Caml is an implementation of the ML language, based on
  the Caml Light dialect extended with a complete class-based object system
  and a powerful module system in the style of Standard ML.
***************
*** 14,31 ****
  The other compiler generates high-performance native code for a number
  of processors. Compilation takes longer and generates bigger code, but
  the generated programs deliver excellent performance (better than
! Standard ML of New Jersey 1.08 on our tests), while retaining the
  moderate memory requirements of the bytecode compiler. The native-code
  compiler currently runs on the following platforms:
  
!     Alpha processors: DecStation 3000 under OSF1
!     Sparc processors: Sun Sparcstation under SunOS 4.1 or Solaris 2
!     Intel 386 / 486 / Pentium processors: PCs under Linux, NextStep, FreeBSD,
! 					Windows NT, Windows 95
!     Mips processors: DecStation 3100 and 5000 under Ultrix 4
!     HP PA-RISC processors: HP 9000/700 under NextStep (sorry, no HPUX yet)
!     PowerPC and IBM RS/6000 processors: IBM workstations under AIX 3.2
  
! More information on Objective Caml is available on the World Wide Web:
  
!     http://pauillac.inria.fr/ocaml/
--- 16,49 ----
  The other compiler generates high-performance native code for a number
  of processors. Compilation takes longer and generates bigger code, but
  the generated programs deliver excellent performance (better than
! Standard ML of New Jersey 1.09 on our tests), while retaining the
  moderate memory requirements of the bytecode compiler. The native-code
  compiler currently runs on the following platforms:
  
!     Alpha processors: all Digital Alpha machines under Digital Unix or Linux
!     Sparc processors: Sun Sparc under SunOS 4.1, Solaris 2, NetBSD, Linux
!     Intel Pentium processors: PCs under Linux, NextStep, FreeBSD, Solaris 2
!     Mips processors: SGI workstations and mainframes under IRIX 6
!     HP PA-RISC processors: HP 9000/700 under HPUX 9 and NextStep
!     PowerPC processors: IBM RS6000 and PowerPC workstations under AIX 3.2,
!                         PowerMacintosh under MkLinux, LinuxPPC, Rhapsody
!     Motorola 680x0 processors: Sun 3 under SunOS
!     Strong ARM processors: Corel Netwinder under Linux
! 
! DOCUMENTATION:
! 
! The Objective Caml manual is distributed in HTML, PDF, Postscript, and
! DVI. It can be obtained by anonymous FTP from ftp.inria.fr as
! described below. It is also available on the World Wide Web, at
! 
!         http://caml.inria.fr/ocaml/
! 
! AVAILABILITY:
! 
! The complete Objective Caml distribution resides on ftp.inria.fr,
! and can be accessed by anonymous FTP:
  
!         host:       ftp.inria.fr (192.93.2.54)
!         directory:  lang/caml-light
  
! or through a Web browser at ftp://ftp.inria.fr/lang/caml-light/
diff -rc ocaml.orig/pkg/PLIST ocaml/pkg/PLIST
*** ocaml.orig/pkg/PLIST	Tue Aug 18 13:33:13 1998
--- ocaml/pkg/PLIST	Thu Mar 18 13:31:48 1999
***************
*** 24,29 ****
--- 24,33 ----
  lib/ocaml/big_int.cmi
  lib/ocaml/big_int.cmx
  lib/ocaml/big_int.mli
+ lib/ocaml/buffer.cmi
+ lib/ocaml/buffer.cmx
+ lib/ocaml/buffer.ml
+ lib/ocaml/buffer.mli
  lib/ocaml/callback.cmi
  lib/ocaml/callback.cmx
  lib/ocaml/callback.ml
***************
*** 31,40 ****
--- 35,46 ----
  lib/ocaml/caml/alloc.h
  lib/ocaml/caml/callback.h
  lib/ocaml/caml/config.h
+ lib/ocaml/caml/fail.h
  lib/ocaml/caml/memory.h
  lib/ocaml/caml/misc.h
  lib/ocaml/caml/mlvalues.h
  lib/ocaml/camlheader
+ lib/ocaml/camlheader_ur
  lib/ocaml/char.cmi
  lib/ocaml/char.cmx
  lib/ocaml/char.ml
***************
*** 287,292 ****
--- 293,299 ----
  share/doc/ocaml/html/node8.html
  share/doc/ocaml/html/node9.html
  share/doc/ocaml/html/previous_motif.gif
+ share/ocaml/ocaml-2.02-refman.ps.gz
  @dirrm share/doc/ocaml/html
  @dirrm share/doc/ocaml
  @dirrm lib/ocaml/caml

>Release-Note:
>Audit-Trail:
>Unformatted:


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-ports" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199903220159.TAA01329>