[Pkg-ocaml-maint-commits] r2296 - trunk/packages/ocaml/trunk/debian

Julien Cristau jcristau-guest at costa.debian.org
Mon Dec 19 13:05:47 UTC 2005


Author: jcristau-guest
Date: 2005-12-19 13:05:47 +0000 (Mon, 19 Dec 2005)
New Revision: 2296

Added:
   trunk/packages/ocaml/trunk/debian/control.in
   trunk/packages/ocaml/trunk/debian/native-archs
Modified:
   trunk/packages/ocaml/trunk/debian/changelog
   trunk/packages/ocaml/trunk/debian/rules
Log:
Add a file containing the list of architectures with native compilers, and install this file in the ocaml-nox package.


Modified: trunk/packages/ocaml/trunk/debian/changelog
===================================================================
--- trunk/packages/ocaml/trunk/debian/changelog	2005-12-19 12:28:52 UTC (rev 2295)
+++ trunk/packages/ocaml/trunk/debian/changelog	2005-12-19 13:05:47 UTC (rev 2296)
@@ -12,8 +12,10 @@
 
   [ Julien Cristau ]
   * Disable for_pack_static.dpatch for now, as it breaks the ABI.
+  * Install the list of architectures with native compilers in the ocaml-nox
+    package.
 
- -- Julien Cristau <julien.cristau at ens-lyon.org>  Mon, 19 Dec 2005 13:13:31 +0100
+ -- Julien Cristau <julien.cristau at ens-lyon.org>  Mon, 19 Dec 2005 14:03:50 +0100
 
 ocaml (3.09.0-3) unstable; urgency=low
 

Copied: trunk/packages/ocaml/trunk/debian/control.in (from rev 2292, trunk/packages/ocaml/trunk/debian/control)
===================================================================
--- trunk/packages/ocaml/trunk/debian/control	2005-12-15 17:02:02 UTC (rev 2292)
+++ trunk/packages/ocaml/trunk/debian/control.in	2005-12-19 13:05:47 UTC (rev 2296)
@@ -0,0 +1,165 @@
+Source: ocaml
+Section: devel
+Priority: optional
+Maintainer: Debian OCaml Maintainers <debian-ocaml-maint at lists.debian.org>
+Uploaders: Sven Luther <luther at debian.org>, Stefano Zacchiroli <zack at debian.org>, Julien Cristau <julien.cristau at ens-lyon.org>, Samuel Mimram <smimram at debian.org>
+Build-Depends: debhelper (>> 4.0.2), tcl8.4-dev, tk8.4-dev, libncurses5-dev, libgdbm-dev, dpatch, bzip2, chrpath
+Standards-Version: 3.6.2
+
+Package: ocaml-nox
+Architecture: any
+Depends: libncurses5-dev, ocaml-base-nox (=${Source-Version}), ocaml-base-nox-${F:OCamlABI}, ocaml-interp-${F:OCamlABI}, gcc, binutils
+Suggests: ocaml-doc, libgdbm-dev, tuareg-mode | ocaml-mode
+Recommends: ledit, file
+Provides: ocaml-nox-${F:OCamlABI}, ${F:BestProvides}, libnums-ocaml-dev
+Replaces: camlp4, ocaml (<< 3.07.2a-3), libnums-ocaml-dev
+Conflicts: camlp4, camlidl (<< 1.04), ocaml (<< 3.07.2a-3), libnums-ocaml-dev
+Description: ML language implementation with a class-based object system
+ 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.
+ .
+ Objective Caml comprises two compilers. One generates bytecode
+ which is then interpreted by a C program. This compiler runs quickly,
+ generates compact code with moderate memory requirements, and is
+ portable to essentially any 32 or 64 bit Unix platform. Performance of
+ generated programs is quite good for a bytecoded implementation:
+ almost twice as fast as Caml Light 0.7. This compiler can be used
+ either as a standalone, batch-oriented compiler that produces
+ standalone programs, or as an interactive, toplevel-based system.
+ .
+ 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, while retaining
+ the moderate memory requirements of the bytecode compiler. It is not
+ available on all arches though.
+ .
+ This package contains everything needed to develop ocaml applications
+ that do not require the graphics library.
+
+Package: ocaml
+Architecture: any
+Depends: ocaml-base (= ${Source-Version}), ocaml-base-${F:OCamlABI}, ocaml-nox-${F:OCamlABI}
+Suggests: xlibs-dev, tcl8.4-dev, tk8.4-dev
+Provides: ocaml-${F:OCamlABI}
+Description: ML language implementation with a class-based object system
+ 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.
+ .
+ Objective Caml comprises two compilers. One generates bytecode
+ which is then interpreted by a C program. This compiler runs quickly,
+ generates compact code with moderate memory requirements, and is
+ portable to essentially any 32 or 64 bit Unix platform. Performance of
+ generated programs is quite good for a bytecoded implementation:
+ almost twice as fast as Caml Light 0.7. This compiler can be used
+ either as a standalone, batch-oriented compiler that produces
+ standalone programs, or as an interactive, toplevel-based system.
+ .
+ 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, while retaining
+ the moderate memory requirements of the bytecode compiler. It is not
+ available on all arches though.
+ .
+ This package contains everything needed to develop ocaml applications,
+ including the graphics libraries.
+
+Package: ocaml-base-nox
+Architecture: any
+Provides: ocaml-base-nox-${F:OCamlABI}, libnums-ocaml
+Depends: ${shlibs:Depends}
+Replaces: ocaml-base (<< 3.07.2a-3), libnums-ocaml
+Conflicts: ocaml (<< 3.04-2), ocaml-base (<< 3.07.2a-3), libnums-ocaml
+Description: Runtime system for ocaml bytecode executables
+ 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.
+ .
+ This package contains only the runtime system needed to run bytecode
+ executables that do not use the graphics library. The `ocaml' package
+ contains the full development suite of Objective Caml.
+
+Package: ocaml-base
+Architecture: any
+Depends: ${shlibs:Depends}, ocaml-base-nox-${F:OCamlABI}
+Provides: ocaml-base-${F:OCamlABI}
+Description: Runtime system for ocaml bytecode executables
+ 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.
+ .
+ This package contains only the runtime system needed to run bytecode
+ executables. The `ocaml' package contains the full development suite of
+ Objective Caml.  You may wish to install the 'ocaml-base-nox' package if
+ you do not require any graphical capilities for your runtime.
+
+Package: ocaml-native-compilers
+Architecture: @native-archs@
+Depends: ocaml-nox (= ${Source-Version}), ocaml-nox-${F:OCamlABI}, gcc, binutils, ${shlibs:Depends}
+Provides: ocaml-best-compilers
+Description: Native code compilers of the ocaml suite (the .opt ones)
+ 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.
+ .
+ This package contains the native code version of the compilers and lexer
+ (ocamlc.opt, ocamllex.opt, ocamlopt.opt, camlp4o.opt and camlp4r.opt).
+ The normal version of these programs are found in the ocaml package.
+ For big source codes, these packages can be two to three times faster, but
+ for most normal sized sources, the difference won't be noticeable.
+
+Package: ocaml-source
+Architecture: all
+Provides: ocaml-source-${F:OCamlABI}
+Description: Sources for Objective Caml
+ 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.
+ .
+ This package contains the sources needed to build some packages which build
+ depend on the ocaml source. Notice that if you want to rebuild ocaml, these
+ will not work, consider using the source package instead.
+
+Package: ocaml-interp
+Architecture: any
+Provides: ocaml-interp-${F:OCamlABI}
+Depends: ocaml-base-nox-${F:OCamlABI}
+Replaces: ocaml (<< 3.07.2a-3)
+Conflicts: ocaml (<< 3.07.2a-3)
+Description: Ocaml interpreter and standard libraries
+ 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.
+ .
+ This package contains the files required to run an ocaml shell from the
+ command line.
+
+Package: ocaml-compiler-libs
+Architecture: any
+Provides: ocaml-compiler-libs-${F:OCamlABI}
+Depends: ocaml-nox-${F:OCamlABI}
+Description: Ocaml interpreter and standard libraries
+ 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.
+ .
+ This package contains several modules used internally by the ocaml
+ compilers.  They are not needed for normal ocaml development, but may
+ be helpful in the development of certain applications.
+
+Package: ocaml-mode
+Architecture: all
+Depends: emacs21 | emacsen
+Suggests: ocaml
+Conflicts: ocaml-nox (<< 3.08.3-8)
+Description: A major mode for editing Objective Caml in Emacs
+ This package provides support for editing both Objective Caml and
+ Caml Light programs with Emacs and XEmacs.
+ .
+ Caml-mode supports:
+  - indentation
+  - compilation and error retrieving
+  - interaction with the toplevel
+  - font-lock
+  - imenu

Added: trunk/packages/ocaml/trunk/debian/native-archs
===================================================================
--- trunk/packages/ocaml/trunk/debian/native-archs	2005-12-19 12:28:52 UTC (rev 2295)
+++ trunk/packages/ocaml/trunk/debian/native-archs	2005-12-19 13:05:47 UTC (rev 2296)
@@ -0,0 +1 @@
+alpha amd64 arm hurd-i386 i386 ia64 kfreebsd-i386 powerpc sparc

Modified: trunk/packages/ocaml/trunk/debian/rules
===================================================================
--- trunk/packages/ocaml/trunk/debian/rules	2005-12-19 12:28:52 UTC (rev 2295)
+++ trunk/packages/ocaml/trunk/debian/rules	2005-12-19 13:05:47 UTC (rev 2296)
@@ -14,6 +14,8 @@
 STDLIBDIR = /usr/lib/ocaml/$(OCAMLABI)
 MD5SUMSDIR = /var/lib/ocaml/md5sums
 
+NATIVE_ARCHS = $(shell cat debian/native-archs)
+
 # Uncomment this to turn on verbose mode.
 #export DH_VERBOSE=1
 
@@ -38,10 +40,16 @@
 endif
 
 abi-sed:
-	for t in `find debian/ -name \*.in`; do \
+	for t in `find debian/ -name \*.in | grep -v debian/control.in`; do \
 	  sed -e 's%#OcamlABI#%$(OCAMLABI)%' -e 's%#OcamlMAJOR#%$(OCAMLMAJOR)%' $$t >$${t%.in};	\
 	done
 
+# generate ocaml-native-compilers' Architecture field
+# should never be called automatically
+debian/control:
+	sed -e 's/@native-archs@/$(NATIVE_ARCHS)/g' debian/control.in > $@
+
+
 config-stamp: configure abi-sed
 	dh_testdir
 	# Add here commands to configure the package.
@@ -74,12 +82,10 @@
 	fi
 	$(MAKE) world
 	$(MAKE) bootstrap
-ifneq ($(DEB_BUILD_ARCH),hppa)
-	if ! grep -q "ARCH=none" config/Makefile; then \
-		echo "Building native compilers" && \
-		$(MAKE) opt opt.opt && \
-		touch opt-built-stamp; \
-	fi
+ifneq ($(findstring $(DEB_BUILD_ARCH),$(NATIVE_ARCHS)),)
+	@echo "Building native compilers"
+	$(MAKE) opt opt.opt
+	touch opt-built-stamp
 endif
 	if [ -x ./ocamlopt ]; then					\
 		$(MAKE) -C debian/ocaml-md5sums opt;			\
@@ -165,6 +171,8 @@
 		$(CURDIR)/debian/README.labltk
 	install -m 644 config/Makefile \
 		$(CURDIR)/debian/ocaml-nox/usr/lib/ocaml/$(OCAMLABI)/config/Makefile
+	# install the list of archs with ocamlopt
+	install -m 644 debian/native-archs $(CURDIR)/debian/ocaml-nox$(STDLIBDIR)
 
 	# now move the graphics files over
 	if [ -e opt-built-stamp ]; then					\




More information about the Pkg-ocaml-maint-commits mailing list