An NMU has been uploaded for this package which addresses this bug. Please find the diffset attached. (This is actually the second of two NMUs; I talked with Frank Lichtenheld on IRC about the fact that this bug also affects powerpc, so an i386-specific fix is incomplete.)
-- Steve Langasek postmodern programmer
diff -u erlang-10.b.1a/debian/rules erlang-10.b.1a/debian/rules --- erlang-10.b.1a/debian/rules +++ erlang-10.b.1a/debian/rules @@ -3,11 +3,12 @@ # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 -MACHINE=$(shell uname -m) + +DEB_HOST_GNU_TYPE := $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE) VERSION=$(shell cat erts/vsn.mk | grep "^VSN" | sed "s/VSN = //") -ifeq ("$(MACHINE)", "i586") - HIPE=--enable-hipe +ifneq ($(DEB_HOST_GNU_TYPE), x86_64-linux) + HIPE=--disable-hipe endif build: config-stamp build-stamp diff -u erlang-10.b.1a/debian/changelog erlang-10.b.1a/debian/changelog --- erlang-10.b.1a/debian/changelog +++ erlang-10.b.1a/debian/changelog @@ -1,3 +1,20 @@ +erlang (1:10.b.1a-2.2) unstable; urgency=high + + * Non-maintainer upload. + * High-urgency upload for sarge-targetted RC bugfix + * Build with --disable-hipe on everything but amd64 (not just on i386), + for compatibility with 2.4 kernels in sarge; thanks to Lars + Wirzenius for tracking this down. Closes: #276800. + + -- Steve Langasek <[EMAIL PROTECTED]> Sat, 12 Mar 2005 01:27:58 -0800 + + erlang (1:10.b.1a-2.1) unstable; urgency=high + + * NMU + * configure --disable-hipe on i386, (Closes: #276800) + + -- Frank Lichtenheld <[EMAIL PROTECTED]> Sat, 12 Mar 2005 14:50:16 +0100 + erlang (1:10.b.1a-2) unstable; urgency=low * Rebuild with corrected pathnames to libraries (remove duplicates). only in patch2: unchanged: --- erlang-10.b.1a.orig/erts/etc/common/Install +++ erlang-10.b.1a/erts/etc/common/Install @@ -0,0 +1,160 @@ +#!/bin/sh +# +# Patch $ERL_ROOT/emulator/obj/Makefile.dist & make +# +# +start_option=query +while [ $# -ne 0 ]; do + case $1 in + -minimal) start_option=minimal ;; + -sasl) start_option=sasl ;; + *) ERL_ROOT=$1 ;; + esac + shift +done + +if [ -z "$ERL_ROOT" -o ! -d "$ERL_ROOT" ] +then + echo "Install: need ERL_ROOT directory as argument" + exit 1 +fi + +if [ `echo $ERL_ROOT | awk '{ print substr($1,1,1) }'` != "/" ] +then + echo "Install: need an absolute path to ERL_ROOT" + exit 1 +fi + +if [ ! -d $ERL_ROOT/erts-5.4.2.1/bin ] +then + echo "Install: The directory $ERL_ROOT/erts-5.4.2.1/bin does not exist" + echo " Bad location or erts module not un-tared" + exit 1 +fi + +if [ -d $ERL_ROOT/erts-5.4.2.1/obj ] +then + cd $ERL_ROOT/erts-5.4.2.1/obj + sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" Makefile.src > Makefile +fi + +if [ ! -d $ERL_ROOT/bin ] +then + mkdir $ERL_ROOT/bin +fi + +# +# Fetch target system. +# +SYS=`(uname -s) 2>/dev/null` || SYS=unknown +REL=`(uname -r) 2>/dev/null` || REL=unknown +case $SYS:$REL in + SunOS:5.*) + TARGET=sunos5 ;; + Linux:*) + TARGET=linux ;; + *) + TARGET="" ;; +esac + +cd $ERL_ROOT/erts-5.4.2.1/bin + +sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" erl.src > erl +chmod 755 erl + +# +# Create start file for embedded system use, +# +(cd $ERL_ROOT/erts-5.4.2.1/bin; + sed -e "s;%FINAL_ROOTDIR%;$ERL_ROOT;" start.src > start; + chmod 755 start) + +cd $ERL_ROOT/bin + +cp -p $ERL_ROOT/erts-5.4.2.1/bin/erl . +cp -p $ERL_ROOT/erts-5.4.2.1/bin/erlc . + +# +# Set a soft link to epmd +# This should not be done for an embedded system! +# + +# Remove old links first. +if [ -h epmd ]; then + /bin/rm -f epmd +fi + +ln -s $ERL_ROOT/erts-5.4.2.1/bin/epmd epmd + +cp -p $ERL_ROOT/erts-5.4.2.1/bin/run_erl . +cp -p $ERL_ROOT/erts-5.4.2.1/bin/to_erl . +cp -p $ERL_ROOT/erts-5.4.2.1/bin/start . +sed -e "s;%EMU%;beam;" $ERL_ROOT/erts-5.4.2.1/bin/start_erl.src > start_erl +chmod 755 start_erl + +if [ -d $ERL_ROOT/lib/sasl* ] +then + (cd $ERL_ROOT/releases + echo 5.4.2.1 R10B > start_erl.data) + echo "" + (cd $ERL_ROOT/releases/R10B + echo "" + echo "Building SASL boot script ..." +# ERCL_EMULATOR="$ERL_ROOT/bin/erl +B -boot ./start" $ERL_ROOT/bin/erlc -s start_sasl.rel + $ERL_ROOT/bin/erl -noinput +B -boot ./start -s systools make_script start_sasl -s erlang halt + $ERL_ROOT/bin/erl -noinput +B -boot ./start -s release_handler create_RELEASES $ERL_ROOT start_sasl.rel -s erlang halt + echo "") +fi + + +if [ -f $ERL_ROOT/releases/R10B/start_sasl.boot ] && \ + [ "$start_option" = "query" ] +then + echo "Do you want to use a minimal system startup" + echo "instead of the SASL startup? (y/n) [n]: " | tr -d '\012' + read reply + case $reply in + [Yy]*) + start_option=minimal ;; + *) + start_option=sasl ;; + esac +fi + +case $start_option in + minimal) + Name=start_clean ;; + sasl) + Name=start_sasl ;; + *) + Name=start_sasl ;; +esac + +cp -p ../releases/R10B/start_*.boot . +cp -p $Name.boot start.boot +cp -p ../releases/R10B/$Name.script start.script + +# +# We always run ranlib unless Solaris/SunOS 5 +# but ignore failures. +# +if [ "X$TARGET" != "Xsunos5" -a -d $ERL_ROOT/usr/lib ]; then + cd $ERL_ROOT/usr/lib + for library in lib*.a + do + (ranlib $library) > /dev/null 2>&1 + done +fi + + +# +# Fixing the man pages +# + +if [ -d $ERL_ROOT/man ] +then + cd $ERL_ROOT + ./misc/format_man_pages $ERL_ROOT +fi + + only in patch2: unchanged: --- erlang-10.b.1a.orig/Makefile +++ erlang-10.b.1a/Makefile @@ -0,0 +1,568 @@ +# Generated automatically from Makefile.in by configure. +# ``The contents of this file are subject to the Erlang Public License, +# Version 1.1, (the "License"); you may not use this file except in +# compliance with the License. You should have received a copy of the +# Erlang Public License along with this software. If not, it can be +# retrieved via the world wide web at http://www.erlang.org/. +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# The Initial Developer of the Original Code is Ericsson Utvecklings AB. +# Portions created by Ericsson are Copyright 1999, Ericsson Utvecklings +# AB. All Rights Reserved.'' +# +# $Id$ +# +# Toplevel makefile for building the Erlang system +# + +# ---------------------------------------------------------------------- + +# And you'd think that this would be obvious... :-) +SHELL = /bin/sh + +# The top directory in which Erlang is unpacked +ERL_TOP = /home/devel/release/erlang-10.b.1a + +# erts (Erlang RunTime System) version +ERTS = erts-5.4.2.1 + +# ---------------------------------------------------------------------- + +# +# The variables below control where Erlang is installed. They are +# configurable (unless otherwise stated). Some of them are best +# changed by giving special arguments to configure instead of changing +# them in this file. Note: If you change them in Makefile, instead of +# Makefile.in your changes will be lost the next time you run +# configure. +# + +# prefix from autoconf, default is /usr/local (must be an absolute path) +prefix = /usr +exec_prefix = ${prefix} + +# The following can be set in case you install Erlang in a different +# location from where you have configured it to run. This can be +# useful e.g. when installing on a server that stores the files with a +# different path from where the clients access them. Or when building +# rpms. +#INSTALL_PREFIX = +# Naah...override `prefix' instead. + +# The directory in which user executables (erl, erlc and erl_call) are put +BINDIR = $(INSTALL_PREFIX)${exec_prefix}/bin + +# The directory which will contain installed Erlang version. +# (ILIBDIR is supposed to be LIBDIR *without* the install prefix) +ERLANG_LIBDIR = $(INSTALL_PREFIX)${exec_prefix}/lib/erlang +ERLANG_ILIBDIR = ${exec_prefix}/lib/erlang + +# You can *not* change these two, they have to stay this way for now. +ERLANG_BINDIR = $(ERLANG_LIBDIR)/bin +ERLANG_ERTSBINDIR = $(ERLANG_LIBDIR)/$(ERTS)/bin + +# The directory in which man pages for above executables are put +ERL_MAN1DIR = $(INSTALL_PREFIX)/usr/share/man/man1 +ERL_MAN1EXT = 1 + +# The directory in which Erlang private man pages are put. In order +# not to clutter up the man namespace these are by default put in the +# Erlang private directory $(ERLANG_ILIBDIR)/man. If you want to +# install the man pages together with the rest give the argument +# "--disable-erlang-mandir" when you run configure, which will set +# MAN_DIR to /usr/share/man. +# If you want a special suffix on the manpages set ERL_MANEXT to +# this suffix, e.g. "erl" +ERL_MANDIR = $(INSTALL_PREFIX)$(ERLANG_ILIBDIR)/man +ERL_MANEXT = + +# ---------------------------------------------------------------------- + +# Must be GNU make! +MAKE = make + +# This should be set to the target "arch-vendor-os" +TARGET = i686-pc-linux-gnu + +# A BSD compatible install program +INSTALL = /usr/bin/install -c +INSTALL_PROGRAM = ${INSTALL} +INSTALL_DATA = ${INSTALL} -m 644 +MKSUBDIRS = ${INSTALL} -d + +# Program to create symbolic links +LN_S = ln -s + +# Ranlib program, if not needed set to e.g. ":" +RANLIB = ranlib + +# ---------------------------------------------------------------------- + +# The directories bootstrap and bootstrap_compiler (during primary bootstrap) +# are placed under this directory, typically one might want to set +# this to a fast local filesystem, or, the default, as ERL_TOP +BOOTSTRAP_ROOT = $(ERL_TOP) +# Directories which you need in the path if you wish to run the +# locally built system. (This can be put in front or back of the path +# depending on which system is preferred.) +LOCAL_PATH = $(ERL_TOP)/erts/bin/$(TARGET):$(ERL_TOP)/erts/bin +ifeq ($(TARGET),win32) +WIN32_WRAPPER_PATH=$(ERL_TOP)/erts/etc/win32/cygwin_tools +BOOT_PREFIX=$(WIN32_WRAPPER_PATH):$(BOOTSTRAP_ROOT)/bootstrap/bin: +else +BOOT_PREFIX=$(BOOTSTRAP_ROOT)/bootstrap/bin: +endif +# ---------------------------------------------------------------------- +# Fix up RELEASE_ROOT/TESTROOT havoc +ifeq ($(RELEASE_ROOT),) +ifneq ($(TESTROOT),) +RELEASE_ROOT = $(TESTROOT) +endif +endif + + +# ---------------------------------------------------------------------- + +# A default for the release_tests, not same target dir as release. +# More TESTROOT havoc... +ifeq ($(TESTSUITE_ROOT),) +ifneq ($(TESTROOT),) +TESTSUITE_ROOT = $(TESTROOT) +else +TESTSUITE_ROOT = $(ERL_TOP)/release/tests +endif +endif + +# +# The steps to build a working system are: +# * build an emulator +# * setup the erl and erlc program in bootstrap/bin +# * build additional compilers and copy them into bootstrap/lib +# * use the bootstrap erl and erlc to build all the libs +# +all: all_bootstraps \ + libs local_setup + +# With all bootstraps we mean all bootstrapping that is done when +# the system is delivered in open source, the primary +# bootstrap is not included, it requires a pre built emulator... +all_bootstraps: depend emulator \ + bootstrap_setup \ + secondary_bootstrap_build secondary_bootstrap_copy \ + tertiary_bootstrap_build tertiary_bootstrap_copy \ + fourth_bootstrap_build fourth_bootstrap_copy + +# +# Use these targets when you want to use the erl and erlc +# binaries in your PATH instead of those created from the +# pre-compiled Erlang modules under bootstrap/. +# +ifeq ($(findstring ose,$(TARGET)),ose) +noboot: + $(MAKE) BOOT_PREFIX= emulator libs +else +noboot: + $(MAKE) BOOT_PREFIX= emulator libs local_setup +endif +noboot_install: + $(MAKE) BOOT_PREFIX= install + +.PHONY: release release_docs + +release: +ifeq ($(OTP_SMALL_BUILD),true) + cd $(ERL_TOP)/lib && $(MAKE) TESTROOT=$(RELEASE_ROOT) release +else + cd $(ERL_TOP)/lib && $(MAKE) BUILD_ALL=1 TESTROOT=$(RELEASE_ROOT) release +endif + cd $(ERL_TOP)/erts && $(MAKE) BUILD_ALL=1 TESTROOT=$(RELEASE_ROOT) release + +# --------------------------------------------------------------- +# Target only used when building commercial ERTS patches +# --------------------------------------------------------------- +release_docs: +ifeq ($(OTP_SMALL_BUILD),true) + cd $(ERL_TOP)/lib && $(MAKE) TESTROOT=$(RELEASE_ROOT) release_docs +else + cd $(ERL_TOP)/lib && $(MAKE) BUILD_ALL=1 TESTROOT=$(RELEASE_ROOT) release_docs +endif + cd $(ERL_TOP)/erts && $(MAKE) BUILD_ALL=1 TESTROOT=$(RELEASE_ROOT) release_docs + + +# ---------------------------------------------------------------------- +ERLANG_EARS=$(BOOTSTRAP_ROOT)/bootstrap/erts +ELINK=$(BOOTSTRAP_ROOT)/bootstrap/erts/bin/elink +BOOT_BINDIR=$(BOOTSTRAP_ROOT)/bootstrap/erts/bin +BEAM_EVM=$(ERL_TOP)/bin/$(TARGET)/beam_evm +BOOTSTRAP_COMPILER = $(BOOTSTRAP_ROOT)/bootstrap_compiler + +emulator: + cd erts && ERL_TOP=$(ERL_TOP) $(MAKE) NO_START_SCRIPTS=true $(TYPE) + +libs: +ifeq ($(OTP_SMALL_BUILD),true) + cd lib && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) opt +else + cd lib && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) opt BUILD_ALL=true +endif +kernel: + cd lib/kernel && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) opt BUILD_ALL=true + +hlib: + cd lib/hipe && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) opt BUILD_ALL=true + +dep depend: + cd erts/emulator && ERL_TOP=$(ERL_TOP) $(MAKE) generate depend + cd erts/lib_src && ERL_TOP=$(ERL_TOP) $(MAKE) depend + +# Creates "erl" and "erlc" in bootstrap/bin which uses the precompiled +# libraries in the bootstrap directory + +# ---------------------------------------------------------------------- +# Bootstraps... +# ---------------------------------------------------------------------- +ifeq ($(TARGET),win32) +bootstrap_setup: + @rm -f $(BOOTSTRAP_ROOT)/bootstrap/bin/erl.exe \ + $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc.exe \ + $(BOOTSTRAP_ROOT)/bootstrap/bin/erl.ini \ + $(BOOTSTRAP_ROOT)/bootstrap/bin/beam.dll + make_bootstrap_ini.sh $(BOOTSTRAP_ROOT)/bootstrap \ + $(ERL_TOP)/bin/$(TARGET) + @cp $(ERL_TOP)/bin/$(TARGET)/erlc.exe \ + $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc.exe + @cp $(ERL_TOP)/bin/$(TARGET)/erl.exe \ + $(BOOTSTRAP_ROOT)/bootstrap/bin/erl.exe +else +bootstrap_setup: + @rm -f $(BOOTSTRAP_ROOT)/bootstrap/bin/erl \ + $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc + @sed -e "s;%FINAL_ROOTDIR%;$(BOOTSTRAP_ROOT)/bootstrap;" \ + -e "s;\$$ROOTDIR/erts-.*/bin;$(ERL_TOP)/bin/$(TARGET);" \ + -e "s;EMU=.*;EMU=beam$(TYPEMARKER);" \ + $(ERL_TOP)/erts/etc/unix/erl.src.src > \ + $(BOOTSTRAP_ROOT)/bootstrap/bin/erl + @cp $(ERL_TOP)/bin/$(TARGET)/erlc $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc + @chmod 755 $(BOOTSTRAP_ROOT)/bootstrap/bin/erl \ + $(BOOTSTRAP_ROOT)/bootstrap/bin/erlc +endif + + +secondary_bootstrap_build: + cd lib && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) opt SECONDARY_BOOTSTRAP=true + +secondary_bootstrap_copy: + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include ; fi + cp -f lib/kernel/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin + cp -f lib/kernel/include/*.hrl $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/hipe ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/hipe ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/hipe/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/hipe/ebin ; fi + if test -f lib/hipe/ebin/hipe.beam ; then cp lib/hipe/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/hipe/ebin; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/ebin ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/include ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/include ; fi + cp lib/parsetools/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/ebin + cp -f lib/parsetools/include/*.hrl $(BOOTSTRAP_ROOT)/bootstrap/lib/parsetools/include + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/asn1 ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/asn1 ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/asn1/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/asn1/ebin ; fi + cp lib/asn1/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/asn1/ebin + +tertiary_bootstrap_build: + cd lib && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) opt TERTIARY_BOOTSTRAP=true + +tertiary_bootstrap_copy: + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/ebin ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/include ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/include ; fi + cp lib/snmp/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/snmp/ebin + +fourth_bootstrap_build: + cd lib && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) opt FOURTH_BOOTSTRAP=true + +fourth_bootstrap_copy: + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/ebin ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/include ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/include ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/ic ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/ic ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/ebin ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/include ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/include ; fi + cp lib/ic/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/ebin + cp -f lib/ic/include/*.idl lib/ic/include/*.h $(BOOTSTRAP_ROOT)/bootstrap/lib/ic/include + cp lib/sasl/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/sasl/ebin + +# The first bootstrap build is rarely (never) used in open source, it's +# used to build the shipped bootstrap directory. The Open source bootstrap +# stages start with secondary bootstrap. +# +# These are the ones used, the other ones (prefixed with old_) are for BC. + +# These modules should stay in the kernel directory to make building +# of the emulator possible +KERNEL_PRELOAD = otp_ring0 init erl_prim_loader prim_inet prim_file erlang + +primary_bootstrap: + @echo "=== Building a bootstrap compiler in $(BOOTSTRAP_ROOT)/bootstrap" + cd $(ERL_TOP) && \ + $(MAKE) TESTROOT=$(BOOTSTRAP_ROOT)/bootstrap \ + primary_bootstrap_build + cd $(ERL_TOP) && \ + $(MAKE) TESTROOT=$(BOOTSTRAP_ROOT)/bootstrap \ + primary_bootstrap_copy + cd $(ERL_TOP)/erts/start_scripts && \ + $(MAKE) TESTROOT=$(BOOTSTRAP_ROOT)/bootstrap bootstrap_scripts + +primary_bootstrap_build: primary_bootstrap_compiler + test -d $(TESTROOT) || mkdir -p $(TESTROOT) + cd lib && $(MAKE) ERLC_FLAGS='-pa $(BOOTSTRAP_COMPILER)' \ + BOOTSTRAP=1 opt + cd lib/kernel/src && $(MAKE) ERLC_FLAGS='-pa $(BOOTSTRAP_COMPILER)' \ + HIPE_ENABLED= opt + +primary_bootstrap_compiler: + test -d $(BOOTSTRAP_COMPILER) || mkdir -p $(BOOTSTRAP_COMPILER) + cd lib/compiler && $(MAKE) BOOTSTRAP=1 opt + cp -f lib/compiler/ebin/*.beam $(BOOTSTRAP_COMPILER) + cd lib/compiler && $(MAKE) BOOTSTRAP=1 clean + +primary_bootstrap_copy: + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include ; fi + cp -f lib/kernel/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin + cp -f lib/kernel/include/*.hrl $(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/include + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/ebin ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/include ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/include ; fi + cp -f lib/stdlib/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/ebin + cp -f lib/stdlib/include/*.hrl $(BOOTSTRAP_ROOT)/bootstrap/lib/stdlib/include + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/compiler ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/compiler ; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/compiler/ebin ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/compiler/ebin ; fi + cp -f lib/compiler/ebin/*.beam $(BOOTSTRAP_ROOT)/bootstrap/lib/compiler/ebin + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/orber ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/orber; fi + if test ! -d $(BOOTSTRAP_ROOT)/bootstrap/lib/orber/include ; then mkdir $(BOOTSTRAP_ROOT)/bootstrap/lib/orber/include; fi + cp -f lib/orber/include/* $(BOOTSTRAP_ROOT)/bootstrap/lib/orber/include + +# To remove modules left by the bootstrap building, but leave (restore) +# the modules in kernel which are needed for an emulator build +KERNEL_PRELOAD_BEAMS=$(KERNEL_PRELOAD:%=$(BOOTSTRAP_ROOT)/bootstrap/lib/kernel/ebin/%.beam) +primary_bootstrap_cleanup: + cd lib && $(MAKE) BOOTSTRAP=1 clean + cd lib/kernel/src && $(MAKE) BOOTSTRAP=1 clean + cp $(KERNEL_PRELOAD_BEAMS) lib/kernel/ebin + rm -rf $(BOOTSTRAP_COMPILER) + +# Creates "erl" and "erlc" scripts in bin/erl which uses the libraries in lib +local_setup: + @rm -f erts/bin/erl erts/bin/erlc erts/bin/cerl + @cd erts && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) local_setup + + + +# ---------------------------------------------------------------------- +# Build tests +# --------------------------------------------------------------------- + +# Start with building the test server +TESTS = test_server + +# Tests that can be run on any platform (keep alphabetic order, please) +TESTS += \ + asn1_test \ + compiler_test \ + emulator_test \ + epmd_test \ + erl_interface_test \ + ic_test \ + inets_test \ + jinterface_test \ + kernel_test \ + megaco_test \ + mnemosyne_test \ + mnesia_session_test \ + mnesia_test \ + observer_test \ + orber_test \ + os_mon_test \ + otp_mibs_test \ + pman_test \ + sasl_test \ + snmp_test \ + runtime_tools_test \ + stdlib_test \ + system_test \ + test_server_test + +# Tests that can *not* be run on VxWorks +ifneq ($(findstring vxworks,$(TARGET)),vxworks) +TESTS += \ + cosTransactions_test \ + cosEvent_test \ + cosTime_test \ + cosNotification_test \ + cosProperty_test \ + cosFileTransfer_test \ + cosEventDomain_test \ + crypto_test \ + debugger_test \ + hipe_test \ + odbc_test \ + ssl_test \ + tools_test \ + toolbar_test \ + xmerl_test +endif + +.PHONY: tests release_tests test_server emulator_test system_test epmd_test + +tests release_tests: $(TESTS) + +# Build the test_server +test_server: + cd lib/test_server && $(MAKE) TESTROOT=$(TESTSUITE_ROOT) release_tests + +emulator_test: + cd erts/emulator/test && $(MAKE) TESTROOT=$(TESTSUITE_ROOT) release_tests + +system_test: + cd erts/test && $(MAKE) TESTROOT=$(TESTSUITE_ROOT) release_tests + +epmd_test: + cd erts/epmd/test && $(MAKE) TESTROOT=$(TESTSUITE_ROOT) release_tests + +%_test: + @dir="`echo $@ | sed 's/_test$$//'`"; \ + cd lib/$$dir/test && $(MAKE) TESTROOT=$(TESTSUITE_ROOT) release_tests +# Should I also set TESTROOT_DIR=$(TESTSUITE_ROOT) ? +# ---------------------------------------------------------------------- + +# ---------------------------------------------------------------------- +# Obsolete type of bootstrap where all stages where built with installed sytem +# shuld no longer be used and is soon to be removed. +# Abbreviations: OC = Old Compiler, NC = New Compiler, +# OE = Old Emulator, NE = New Emulator + +old_com_bootstrap: old_bootstrap_nc_for_ne_all_stages old_bootstrap_ne old_bootstrap_scripts + +# +# Builds the New Compiler for the New Emulator (using existing erlc +# and possibly new compiler) then copy everything to the release area. +# Use to create the commerciall bootstrap version, which should be obsolete. +# +old_bootstrap_nc_for_ne_all_stages: + test -d $(TESTROOT) || mkdir -p $(TESTROOT) + cd lib && $(MAKE) BOOTSTRAP=1 TYPE=release release + cd lib && $(MAKE) SECONDARY_BOOTSTRAP=1 TYPE=release release + cd lib && $(MAKE) TERTIARY_BOOTSTRAP=1 TYPE=release release + cd lib && $(MAKE) FOURTH_BOOTSTRAP=1 TYPE=release release + + + +old_bootstrap_ne: + cd erts && $(MAKE) release + +old_bootstrap_scripts: + cd erts/start_scripts && $(MAKE) release + + +# This is one strange name for a target, this actually builds and strips only +# the primary bootstrap, a minimal set of beam files to be able to continue +# bootstrap builds. It's used by other makefiles, so I refrain from +# changing the name right now... +bootstrap_nc_for_ne_no_debug_sym: + test -d $(TESTROOT) || mkdir -p $(TESTROOT) + cd lib && $(MAKE) ERLC_FLAGS='-pa $(BOOTSTRAP_COMPILER)' \ + BOOTSTRAP=1 TYPE=release release + $(ERL_TOP)/erts/emulator/utils/beam_strip $(TESTROOT)/lib/*/ebin/*.beam + +# ---------------------------------------------------------------------- + +# +# Install +# +# Order is important here, don't change it! +# +install: install.dirs install.emulator install.libs install.Install install.bin + +install.emulator: + cd erts && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) TESTROOT=$(ERLANG_LIBDIR) release + +install.libs: +ifeq ($(OTP_SMALL_BUILD),true) + cd lib && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) TESTROOT=$(ERLANG_LIBDIR) release +else + cd lib && \ + ERL_TOP=$(ERL_TOP) PATH=$(BOOT_PREFIX)$${PATH} \ + $(MAKE) TESTROOT=$(ERLANG_LIBDIR) BUILD_ALL=true release +endif + +install.Install: + cd $(ERLANG_LIBDIR) && ./Install -minimal $(ERLANG_LIBDIR) + +# +# Erlang base public files +# +install.bin: + rm -f $(BINDIR)/erl $(BINDIR)/erlc \ + $(BINDIR)/ecc $(BINDIR)/elink $(BINDIR)/ear $(BINDIR)/escript + ${LN_S} $(ERLANG_BINDIR)/erl $(BINDIR)/erl + ${LN_S} $(ERLANG_BINDIR)/erlc $(BINDIR)/erlc + ${LN_S} $(ERLANG_BINDIR)/ecc $(BINDIR)/ecc + ${LN_S} $(ERLANG_BINDIR)/elink $(BINDIR)/elink + ${LN_S} $(ERLANG_BINDIR)/ear $(BINDIR)/ear + ${LN_S} $(ERLANG_BINDIR)/escript $(BINDIR)/escript + +# +# Directories needed before we can install +# +install.dirs: + if test ! -d $(BINDIR) ; then ${MKSUBDIRS} $(BINDIR); fi + ${MKSUBDIRS} $(ERLANG_LIBDIR) + ${MKSUBDIRS} $(ERLANG_LIBDIR)/usr/lib + +# ---------------------------------------------------------------------- + +# +# Clean targets +# + +clean: + rm -f *~ *.bak config.log config.status + find . -type f -name SKIP -print | xargs $(RM) + cd erts && ERL_TOP=$(ERL_TOP) $(MAKE) clean + cd lib && ERL_TOP=$(ERL_TOP) $(MAKE) clean BUILD_ALL=true + +# +# Just wipe out emulator, not libraries +# + +eclean: + cd erts && ERL_TOP=$(ERL_TOP) $(MAKE) clean + +# ----------------------------------------------------------------------
signature.asc
Description: Digital signature