Репозитории ALT
S: | 25.3-alt1 |
D: | R12B.3-alt0.7 |
5.1: | R12B.5-alt11.1 |
4.1: | R11B.5-alt1 |
4.0: | R11B.5-alt1 |
3.0: | R10B.0-alt1 |
+backports: | R10B.10-alt0.M30.1 |
Другие репозитории
Upstream: | 12.B.1 |
Группа :: Engineering
Пакет: erlang
Главная Изменения Спек Патчи Sources Загрузить Gear Bugs and FR Repocop
%def_without icc
%def_with otp_debug
%def_with otp_native
%def_enable threads
%def_enable smp
%def_enable kernel_poll
%def_enable hipe
%def_enable megaco_flex_scanner_lineno
%def_with ssl
%def_with ssl_zlib
%def_with java
#Can build jinterface with gcj or Sun java
%def_enable gcj
%def_disable sctp
%def_enable tsp
%def_disable elib_malloc
%def_enable fixalloc
%def_enable clock_gettime
%def_enable hybrid_heap
%def_disable lock_checking
%def_with gmp
%def_enable asm_optimize
%def_disable gnu_ld
%def_with minimal_src
#----------------------------------------------------------------------
%define set_disable() %{expand:%%force_disable %{1}} %{expand:%%undefine _enable_%{1}}
%define set_without() %{expand:%%force_without %{1}} %{expand:%%undefine _with_%{1}}
%define subst_enable_to() %{expand:%%{?_enable_%{1}:--enable-%{2}}} %{expand:%%{?_disable_%{1}:--disable-%{2}}}
%define subst_with_to() %{expand:%%{?_with_%{1}:--with-%{2}}} %{expand:%%{?_without_%{1}:--without-%{2}}}
%{?_enable_smp_io_thread:%set_disable port_tasks}
%define x86 i586
%define amd64 x86_64
%ifnarch %ix86 x86_64 arm sparc ppc
%set_without native
%endif
%{?_disable_hipe:%set_without otp_native}
%ifnarch %ix86 x86_64
%set_without icc
%endif
%define Name Erlang
%define ver R12B
Name: erlang
%define subver 5
Version: %ver.%subver
%define plevel a
Release: alt11.1
Summary: A programming language developed by Ericsson
License: EPL
Group: Development/Erlang
URL: http://www.%name.org
Source: otp%{?_with_minimal_src:_minimal}_src_%ver-%subver%plevel.tar
Patch0: otp-R12B-%subver%plevel-%release.patch
Patch1: otp-R12B-%subver%plevel-ffi.patch
Patch2: otp-R12B-%subver%plevel-mnesiaex.patch
Patch3: otp-R12B-%subver%plevel-opt.patch
Patch4: otp-R12B-%subver%plevel-beam_lib.patch
Patch5: otp-R12B-%subver%plevel-opt-tuples.patch
Requires: %name-otp = %version-%release
Provides: erlang_mod(hipe_bifs) = %version
Packager: Led <led at altlinux.ru>
BuildRequires(pre): rpm-macros-%name
BuildRequires: gcc-c++ flex libncurses-devel libunixODBC-devel symlinks
BuildRequires: zlib-devel libgd2-devel sh libffi-devel /proc
BuildRequires: rpm-build-%name >= 0.6.2
%{?_with_icc:BuildRequires: icc libicc-devel}
%if_with java
%if_enabled gcj
BuildRequires: jdkgcj
%else
BuildRequires: java-devel
%endif
%endif
%{?_with_ssl:BuildRequires: libssl-devel openssl}
%{?_with_gmp:BuildRequires: libgmp-devel}
%description
%Name is a programming language developed at Ericsson Computer Science
Laboratory. %Name provides many features which are more commonly
associated with an operating system: concurrent processes, scheduling,
memory management, distribution, networking, etc.
%package devel
Summary: Libs and headers for devel for %Name
Group: Development/C
Requires: %name = %version-%release
%description devel
%Name is a programming language developed at Ericsson Computer Science
Laboratory. %Name provides many features which are more commonly
associated with an operating system: concurrent processes, scheduling,
memory management, distribution, networking, etc.
This package contains Libs and headers for devel for %Name.
%package megaco-common
Summary: H.248 support for %Name - common files
Group: Development/Erlang
Requires: %name = %version-%release
%description megaco-common
Megaco (aka H.248) is a signalling protocol used in VoIP networks.
This package contains common %Name Megaco files.
%package megaco-devel
Summary: Headers for %Name megaco modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-megaco = %version-%release
%description megaco-devel
Headers for %Name megaco modules.
%package megaco
Summary: H.248 support for %Name
Group: Development/Erlang
BuildArch: noarch
Provides: %name-megaco-modules = %version-%release
Requires: %name-megaco-common = %version-%release
Requires: %name-visual = %version-%release
%description megaco
Megaco (aka H.248) is a signalling protocol used in VoIP networks.
This package contains modules for %Name Megaco.
%package visual-common
Summary: Standart visual applications for %Name - common files
Group: Development/Erlang
Requires: %name = %version-%release
Requires: tk
%description visual-common
Standard visual applications for %Name programming language.
This package contains common files for %Name visual applications.
%package visual-devel
Summary: Headers for standart visual %Name modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-visual-modules = %version-%release
%description visual-devel
Headers for standart visual %Name modules.
%package visual
Summary: Standart visual applications for %Name
Group: Development/Erlang
BuildArch: noarch
Provides: %name-visual-modules = %version-%release
Requires: %name-visual-common = %version-%release
%description visual
Standard visual applications and modules for %Name programming
language.
%package odbc-common
Summary: ODBC support for %Name - common files
Group: Development/Erlang
Requires: %name = %version-%release
%description odbc-common
ODBC support for %Name programming language.
This package contains common %Name ODBC files.
%package odbc-devel
Summary: Headers for %Name ODBC modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-odbc-modules = %version-%release
%description odbc-devel
Headers for %Name ODBC modules.
%package odbc
Summary: ODBC support for %Name
Group: Development/Erlang
BuildArch: noarch
Provides: %name-odbc-modules = %version-%release
Requires: %name-odbc-common = %version-%release
%description odbc
ODBC support for %Name programming language.
%package common_test-common
Summary: A portable framework for automatic testing %Name applications - common files
Group: Development/Erlang
Requires: %name = %version-%release
%description common_test-common
A portable framework for automatic testing %Name applications.
This package contains common %Name common_test files.
%package common_test-devel
Summary: Headers for %Name common_test modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-common_test-modules = %version-%release
%description common_test-devel
Headers for %Name common_test modules.
%package common_test
Summary: A portable framework for automatic testing %Name applications
Group: Development/Erlang
BuildArch: noarch
Provides: %name-common_test-modules = %version-%release
Requires: %name-common_test-common = %version-%release
%description common_test
A portable framework for automatic testing %Name applications.
%package docbuilder-common
Summary: Tool for generating HTML documentation for %Name applications - common files
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
%description docbuilder-common
Tool for generating HTML documentation for %Name applications.
This package contains common %Name docbuilder files.
%package docbuilder-devel
Summary: Headers for %Name docbuilder modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-docbuilder-modules = %version-%release
%description docbuilder-devel
Headers for %Name docbuilder modules.
%package docbuilder
Summary: Tool for generating HTML documentation for %Name applications
Group: Development/Erlang
BuildArch: noarch
Provides: %name-docbuilder-modules = %version-%release
Requires: %name-docbuilder-common = %version-%release
%description docbuilder
Tool for generating HTML documentation for %Name applications.
%package examples
Summary: OTP examples
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
%description examples
OTP examples.
%package otp-common
Summary: Standard %Name OTP - common files
Group: Development/Erlang
Provides: otp-common = %version-%release
Requires: %name = %version-%release
%description otp-common
Standard %Name OTP.
This package contains common %Name OTP files.
%package otp-devel
Summary: Headers for standard %Name OTP
Group: Development/Erlang
BuildArch: noarch
Provides: otp-devel = %version-%release
Requires: %name-otp-modules = %version-%release
%description otp-devel
Headers for standard %Name OTP.
%package otp
Summary: Standard %Name OTP
Group: Development/Erlang
BuildArch: noarch
Provides: %name-otp-modules = %version-%release
Provides: otp = %version-%release
Requires: %name-otp-common = %version-%release
Conflicts: erlang-eunit = 2.0
%description otp
Standard %Name OTP.
%if_with java
%package jinterface
Summary: %Name's level interface to Java
Group: Development/Erlang
BuildArch: noarch
Requires: %name-otp = %version-%release
%description jinterface
%Name's level interface to Java.
%endif
%package full
Summary: Full %Name/OTP package
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-megaco = %version-%release
Requires: %name-odbc = %version-%release
Requires: %name-visual = %version-%release
Requires: %name-docbuilder = %version-%release
Requires: %name-common_test = %version-%release
Requires: %name-examples = %version-%release
%{?_with_java:Requires: %name-jinterface = %version-%release}
%description full
%Name is a programming language developed at Ericsson Computer Science
Laboratory. %Name provides many features which are more commonly
associated with an operating system: concurrent processes, scheduling,
memory management, distribution, networking, etc.
This package requires all standard %Name/OTP subpackages.
%if_with otp_debug
%package otp-debug
Summary: Standard %Name OTP modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-otp-modules-debug = %version-%release
Provides: otp-debug = %version-%release
Requires: %name-otp-common = %version-%release
#Provides: %name-otp-modules = %version-%release
#Provides: %name-otp = %version-%release
Conflicts: erlang-eunit-debug = 2.0
%description otp-debug
Standard %Name OTP modules with debug information.
%package megaco-debug
Summary: H.248 support for %Name - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-megaco-modules-debug = %version-%release
Requires: %name-megaco-common = %version-%release
#Provides: %name-megaco = %version-%release
#Provides: %name-megaco-modules = %version-%release
%description megaco-debug
Megaco (aka H.248) is a signalling protocol used in VoIP networks.
This package contains modules for %Name Megaco with debug information.
%package visual-debug
Summary: Standart visual applications for %Name - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-visual-modules-debug = %version-%release
Requires: %name-visual-common = %version-%release
#Provides: %name-visual = %version-%release
#Provides: %name-visual-modules = %version-%release
%description visual-debug
Standard visual applications for %Name programming language.
This package contains modules for visual applications with debug
information.
%package odbc-debug
Summary: ODBC support for %Name - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-odbc-modules-debug = %version-%release
Requires: %name-odbc-common = %version-%release
#Provides: %name-odbc = %version-%release
#Provides: %name-odbc-modules = %version-%release
%description odbc-debug
ODBC support for %Name programming language.
This package contains modules for odbc with debug information.
%package common_test-debug
Summary: A portable framework for automatic testing %Name applications - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-common_test-modules-debug = %version-%release
Requires: %name-common_test-common = %version-%release
#Provides: %name-common_test = %version-%release
#Provides: %name-common_test-modules = %version-%release
%description common_test-debug
A portable framework for automatic testing %Name applications.
This package contains modules for common_test with debug information.
%package docbuilder-debug
Summary: Tool for generating HTML documentation for %Name applications - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-docbuilder-modules-debug = %version-%release
Requires: %name-docbuilder-common = %version-%release
#Provides: %name-docbuilder = %version-%release
#Provides: %name-docbuilder-modules = %version-%release
%description docbuilder-debug
Tool for generating HTML documentation for %Name applications.
This package contains modules for docbuilder with debug information.
%endif
%if_with otp_native
%package otp-native
Summary: Standard %Name OTP modules with native CPU code
Group: Development/Erlang
Provides: %name-otp-modules-native = %version-%release
Provides: otp-native = %version-%release
Requires: %name-otp-common = %version-%release
#Provides: %name-otp = %version-%release
#Provides: %name-otp-modules = %version-%release
%description otp-native
Standard %Name OTP modules with native CPU code.
%package megaco-native
Summary: H.248 support for %Name - modules with native CPU code
Group: Development/Erlang
Provides: %name-megaco-modules-native = %version-%release
Requires: %name-megaco-common = %version-%release
#Provides: %name-megaco = %version-%release
#Provides: %name-megaco-modules = %version-%release
%description megaco-native
Megaco (aka H.248) is a signalling protocol used in VoIP networks.
This package contains modules for %Name Megaco with native CPU code.
%package visual-native
Summary: Standart visual applications for %Name - modules with native CPU code
Group: Development/Erlang
Provides: %name-visual-modules-native = %version-%release
Requires: %name-visual-common = %version-%release
#Provides: %name-visual = %version-%release
#Provides: %name-visual-modules = %version-%release
%description visual-native
Standard visual applications for %Name programming language.
This package contains modules for visual applications with native
CPU code.
%package odbc-native
Summary: ODBC support for %Name - modules with native CPU code
Group: Development/Erlang
Provides: %name-odbc-modules-native = %version-%release
Requires: %name-odbc-common = %version-%release
#Provides: %name-odbc = %version-%release
#Provides: %name-odbc-modules = %version-%release
%description odbc-native
ODBC support for %Name programming language.
This package contains modules for odbc with native CPU code.
%package common_test-native
Summary: A portable framework for automatic testing %Name applications - modules with native CPU code
Group: Development/Erlang
Provides: %name-common_test-modules-native = %version-%release
Requires: %name-common_test-common = %version-%release
#Provides: %name-common_test = %version-%release
#Provides: %name-common_test-modules = %version-%release
%description common_test-native
A portable framework for automatic testing %Name applications.
This package contains modules for common_test with native CPU code.
%package docbuilder-native
Summary: Tool for generating HTML documentation for %Name applications - modules with native CPU code
Group: Development/Erlang
Provides: %name-docbuilder-modules-native = %version-%release
Requires: %name-docbuilder-common = %version-%release
#Provides: %name-docbuilder = %version-%release
#Provides: %name-docbuilder-modules = %version-%release
%description docbuilder-native
Tool for generating HTML documentation for %Name applications.
This package contains modules for docbuilder with native CPU code.
%endif
%prep
%setup -n otp_src_%ver-%subver
chmod -R u+w ./
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
subst "/^[[:blank:]]*ERL_COMPILE_FLAGS[[:blank:]]*/ s/[[:blank:]]*+debug_info//g" make/otp.mk.in
%build
%define _optlevel 3
%{?_enable_asm_optimize:%add_optflags -DASM_OPTIMIZE}
%{?_with_icc:%add_optflags -gcc -vec-guard-write -opt-multi-version-aggressive %{?_disable_gnu_ld:-ip}}
export CFLAGS="%optflags"
%undefine __libtoolize
%define _configure_script ./otp_build configure
./otp_build autoconf
%configure \
--libdir=%_libexecdir \
%{subst_enable threads} \
%{subst_enable_to smp smp-support} \
%{subst_enable kernel_poll kernel-poll} \
%{subst_enable hipe} \
%{subst_enable_to megaco_flex_scanner_lineno megaco-flex-scanner-lineno} \
%{subst_with ssl} \
%{subst_with_to ssl_zlib ssl-zlib} \
%{subst_with gmp} \
%{subst_enable sctp} \
%{subst_enable tsp} \
%{subst_enable fixalloc} \
%{subst_enable_to elib_malloc elib-malloc} \
%{subst_enable_to hybrid_heap hybrid-heap} \
%{subst_enable_to lock_checking lock-checking} \
%{subst_enable_to clock_gettime clock-gettime} \
--disable-erlang-mandir \
%{?_with_icc:CC=icc %{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}}
%make depend
%make_build %{?_with_icc:%{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}} emulator bootstrap_setup primary_bootstrap_copy
%{?_with_otp_native:%make_build %{?_with_icc:%{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}} hipe_bootstrap}
rm -f lib/kernel/ebin/*
export ERL_COMPILE_FLAGS="%{?_with_otp_debug:+debug_info}%{?_with_otp_native: +native +'{hipe,[o3]}'}"
%make_build %{?_with_icc:%{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}} libs dialyzer
%make_build %{?_with_icc:%{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}} local_setup
%install
%make_install ERLANG_LIBDIR=%buildroot%_otpdir ERLANG_ILIBDIR=%_otpdir INSTALL_PREFIX=%buildroot install
install -d -m 0755 %buildroot{%_otpdir/usr/include,%_includedir}
ln -sf %buildroot%_otpdir/{erts-*/include/*.h,usr/include/}
ln -sf %buildroot{%_otpdir/usr/include,%_includedir/%name}
for l in $(ls -d %buildroot%_otplibdir/* | grep -v '^%buildroot%_otplibdir/erl_interface-.*'); do
if [ -d $l/src ]; then
H=$(find $l/src -type f -name '*.hrl' | grep -v '.*_internal\.hrl$') ||:
if [ -n "$H" ]; then
[ -d $l/include ] || install -d -m 0755 $l/include
mv $H $l/include/
for f in $H; do
ln -sf $l/include/$(basename $f) $f
done
find $l/src/* -not -type l -not -type d -delete
else
rm -rf $l/src
fi
fi
done
rm -f %buildroot%_otplibdir/erl_interface-*/src/{INSTALL,Makefile*,*.mk,*/*.c}
rm -rf %buildroot%_otpdir/{lib/*/{{c,java}_src,*.mk,priv/obj},erts-*/src}
rm -f %buildroot%_otplibdir/*/*/*.{asn1,erl}
rm -f %buildroot%_otplibdir/orber-*/COSS/CosNaming/*.erl
rm -f %buildroot%_otplibdir/*/priv/bin/*.bat
rm -f %buildroot%_otplibdir/*/priv/*.in
rm -f %buildroot%_otplibdir/*/info
find %buildroot -type f -name '*.src' -delete
find %buildroot -empty -delete
install -d -m 0755 %buildroot%_docdir/%name-%version
install -m 0644 AUTHORS EPLICENCE %buildroot%_docdir/%name-%version/
rm -rf %buildroot%_otpdir/{Install,misc,usr/lib}
subst 's|%buildroot||' %buildroot%_otpdir/{{,erts-*/}bin/{erl,start},releases/RELEASES}
sed 's|^ROOTDIR=|&%buildroot|' %buildroot%_otpdir/bin/erl > erl.buildroot
chmod 755 erl.buildroot
%define __erlang %_builddir/%buildsubdir/erl.buildroot
%define __erlc env ERLC_EMULATOR=%__erlang %buildroot%_otpdir/bin/erlc
install_ebin()
{
local d f
f=$1
shift
for d in %buildroot%_otplibdir/*/ebin; do
install -d -m 0755 $d.$f
%__erlang -noshell -run beam_strip start -run erlang halt -extra -o $d.$f $ at $d/*.beam
done
cat > %buildroot%_otpdir/bin/erl.$f <<__EOF__
#!/bin/sh
exec %_otpdir/bin/erl -pa \$(ls -d %_otplibdir/*/ebin.$f) \$ at
__EOF__
chmod 755 %buildroot%_otpdir/bin/erl.$f
ln -sf %buildroot{%_otpdir/bin,%_bindir}/erl.$f
}
%{?_with_otp_debug:install_ebin debug -A -r CInf -c}
%{?_with_otp_native:install_ebin native -s -c}
for d in %buildroot%_otplibdir/*/ebin; do
%__erlang -noshell -run beam_strip start -run erlang halt -extra -s -A $d/*.beam
done
for f in dialyzer erl erlc escript run_erl start to_erl typer; do
ln -sf %buildroot%_otpdir{/erts-*,}/bin/$f
done
symlinks -scdr %buildroot
%add_findreq_skiplist %_otplibdir/megaco-*/examples/meas/*.sh.skel
%add_findreq_skiplist %_otplibdir/*/contribs/ebin/* %_otplibdir/*/examples/ebin/* %_otplibdir/*/examples/*/ebin/*
%files
%dir %_docdir/%name-%version
%_docdir/%name-%version/*
%_bindir/*
%dir %_otpdir
%dir %_otpdir/bin
%_otpdir/bin/*
%dir %_otpdir/erts-*
%_otpdir/erts-*/bin
%_otpdir/releases
%dir %_otpdir/usr
%dir %_otplibdir
%if_with otp_debug
%exclude %_otpdir/bin/*.debug
%exclude %_bindir/*.debug
%endif
%if_with otp_native
%exclude %_otpdir/bin/*.native
%exclude %_bindir/*.native
%endif
%exclude %_otpdir/bin/typer*
%exclude %_bindir/typer*
%exclude %_otpdir/erts-*/bin/typer
%files devel
%_otpdir/erts-*/lib
%_otpdir/erts-*/include
%_otpdir/usr/include
%_otplibdir/erl_interface-*/*
%exclude %_otplibdir/erl_interface-*/bin
%_includedir/%name
%files otp-common
%_otplibdir/*
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/dialyzer-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/erl_interface-*/include
%exclude %_otplibdir/erl_interface-*/lib
%exclude %_otplibdir/erl_interface-*/src
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%{?_with_java:%exclude %_otplibdir/jinterface-*}
%exclude %_otplibdir/*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/*/ebin.native}
%exclude %_otplibdir/*/examples
%exclude %_otplibdir/*/contribs
%exclude %_otplibdir/*/include
%exclude %_otplibdir/*/src
%exclude %_otplibdir/hipe-*/*/*.hrl
%exclude %_otplibdir/hipe-*/*/*.inc
%exclude %_otplibdir/orber-*/COSS/CosNaming/*.hrl
%files otp-devel
%_otplibdir/*/include
%_otplibdir/*/src
%_otplibdir/hipe-*/*/*.hrl
%_otplibdir/hipe-*/*/*.inc
%_otplibdir/orber-*/COSS/CosNaming/*.hrl
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/dialyzer-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/erl_interface-*
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%{?_with_java:%exclude %_otplibdir/jinterface-*}
%files otp
%_otplibdir/*/ebin
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/dialyzer-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%{?_enable_hipe:%exclude %_otplibdir/hipe-*/ebin/hipe_tool*}
%exclude %_otplibdir/observer-*/ebin/etop*
%exclude %_otplibdir/observer-*/ebin/ttb_et*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%files megaco-common
%_otplibdir/megaco-*
%exclude %_otplibdir/megaco-*/examples
%exclude %_otplibdir/megaco-*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/megaco-*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/megaco-*/ebin.native}
%exclude %_otplibdir/megaco-*/include
%exclude %_otplibdir/megaco-*/src
%files megaco-devel
%_otplibdir/megaco-*/include
%_otplibdir/megaco-*/src
%files megaco
%_otplibdir/megaco-*/ebin
%files visual-common
%_otpdir/erts-*/bin/typer
%_otpdir/bin/typer*
%_bindir/typer*
%_otplibdir/appmon-*
%_otplibdir/debugger-*
%_otplibdir/dialyzer-*
%_otplibdir/et-*
%_otplibdir/gs-*
%_otplibdir/pman-*
%_otplibdir/toolbar-*
%_otplibdir/tv-*
%_otplibdir/typer-*
%exclude %_otplibdir/*/ebin
%exclude %_otplibdir/*/examples
%exclude %_otplibdir/*/contribs
%exclude %_otplibdir/*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/*/ebin.native}
%exclude %_otplibdir/*/include
%exclude %_otplibdir/*/src
%files visual-devel
%_otplibdir/appmon-*/include
%_otplibdir/appmon-*/src
%_otplibdir/debugger-*/include
%_otplibdir/debugger-*/src
%_otplibdir/dialyzer-*/include
%_otplibdir/dialyzer-*/src
%_otplibdir/et-*/include
%_otplibdir/gs-*/include
%_otplibdir/gs-*/src
%_otplibdir/pman-*/include
%_otplibdir/pman-*/src
%_otplibdir/toolbar-*/include
%_otplibdir/toolbar-*/src
%_otplibdir/tv-*/include
%_otplibdir/tv-*/src
%_otplibdir/typer-*/include
%_otplibdir/typer-*/src
%files visual
%_otplibdir/appmon-*/ebin
%_otplibdir/debugger-*/ebin
%_otplibdir/dialyzer-*/ebin
%_otplibdir/et-*/ebin
%_otplibdir/gs-*/ebin
%{?_enable_hipe:%_otplibdir/hipe-*/ebin/hipe_tool*}
%_otplibdir/observer-*/ebin/etop*
%_otplibdir/observer-*/ebin/ttb_et*
%_otplibdir/pman-*/ebin
%_otplibdir/toolbar-*/ebin
%_otplibdir/tv-*/ebin
%_otplibdir/typer-*/ebin
%files odbc-common
%_otplibdir/odbc-*
%exclude %_otplibdir/odbc-*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/odbc-*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/odbc-*/ebin.native}
%exclude %_otplibdir/odbc-*/include
%files odbc-devel
%_otplibdir/odbc-*/include
%files odbc
%_otplibdir/odbc-*/ebin
%files common_test-common
%_otplibdir/common_test-*
%exclude %_otplibdir/common_test-*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/common_test-*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/common_test-*/ebin.native}
%exclude %_otplibdir/common_test-*/include
%exclude %_otplibdir/common_test-*/src
%files common_test-devel
%_otplibdir/common_test-*/include
%_otplibdir/common_test-*/src
%files common_test
%_otplibdir/common_test-*/ebin
%files docbuilder-common
%_otplibdir/docbuilder-*
%exclude %_otplibdir/docbuilder-*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/docbuilder-*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/docbuilder-*/ebin.native}
%exclude %_otplibdir/docbuilder-*/include
%exclude %_otplibdir/docbuilder-*/src
%files docbuilder-devel
%_otplibdir/docbuilder-*/include
%_otplibdir/docbuilder-*/src
%files docbuilder
%_otplibdir/docbuilder-*/ebin
%files examples
%_otplibdir/*/examples
%_otplibdir/*/contribs
%files full
%if_with otp_debug
%files otp-debug
%_otplibdir/*/ebin.debug
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%{?_enable_hipe:%exclude %_otplibdir/hipe-*/ebin.debug/hipe_tool*}
%exclude %_otplibdir/observer-*/ebin.debug/etop*
%exclude %_otplibdir/observer-*/ebin.debug/ttb_et*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%_otpdir/bin/*.debug
%_bindir/*.debug
%files megaco-debug
%_otplibdir/megaco-*/ebin.debug
%files visual-debug
%_otplibdir/appmon-*/ebin.debug
%_otplibdir/debugger-*/ebin.debug
%_otplibdir/et-*/ebin.debug
%_otplibdir/gs-*/ebin.debug
%{?_enable_hipe:%_otplibdir/hipe-*/ebin.debug/hipe_tool*}
%_otplibdir/observer-*/ebin.debug/etop*
%_otplibdir/observer-*/ebin.debug/ttb_et*
%_otplibdir/pman-*/ebin.debug
%_otplibdir/toolbar-*/ebin.debug
%_otplibdir/tv-*/ebin.debug
%_otplibdir/typer-*/ebin.debug
%files odbc-debug
%_otplibdir/odbc-*/ebin.debug
%files common_test-debug
%_otplibdir/common_test-*/ebin.debug
%files docbuilder-debug
%_otplibdir/docbuilder-*/ebin.debug
%endif
%if_with otp_native
%files otp-native
%_otplibdir/*/ebin.native
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%exclude %_otplibdir/hipe-*/ebin.native/hipe_tool*
%exclude %_otplibdir/observer-*/ebin.native/etop*
%exclude %_otplibdir/observer-*/ebin.native/ttb_et*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%_otpdir/bin/*.native
%_bindir/*.native
%files megaco-native
%_otplibdir/megaco-*/ebin.native
%files visual-native
%_otplibdir/appmon-*/ebin.native
%_otplibdir/debugger-*/ebin.native
%_otplibdir/et-*/ebin.native
%_otplibdir/gs-*/ebin.native
%_otplibdir/hipe-*/ebin.native/hipe_tool*
%_otplibdir/observer-*/ebin.native/etop*
%_otplibdir/observer-*/ebin.native/ttb_et*
%_otplibdir/pman-*/ebin.native
%_otplibdir/toolbar-*/ebin.native
%_otplibdir/tv-*/ebin.native
%_otplibdir/typer-*/ebin.native
%files odbc-native
%_otplibdir/odbc-*/ebin.native
%files common_test-native
%_otplibdir/common_test-*/ebin.native
%files docbuilder-native
%_otplibdir/docbuilder-*/ebin.native
%endif
%if_with java
%files jinterface
%_otplibdir/jinterface-*
%endif
%changelog
…
Полный changelog можно просмотреть здесь
%def_with otp_debug
%def_with otp_native
%def_enable threads
%def_enable smp
%def_enable kernel_poll
%def_enable hipe
%def_enable megaco_flex_scanner_lineno
%def_with ssl
%def_with ssl_zlib
%def_with java
#Can build jinterface with gcj or Sun java
%def_enable gcj
%def_disable sctp
%def_enable tsp
%def_disable elib_malloc
%def_enable fixalloc
%def_enable clock_gettime
%def_enable hybrid_heap
%def_disable lock_checking
%def_with gmp
%def_enable asm_optimize
%def_disable gnu_ld
%def_with minimal_src
#----------------------------------------------------------------------
%define set_disable() %{expand:%%force_disable %{1}} %{expand:%%undefine _enable_%{1}}
%define set_without() %{expand:%%force_without %{1}} %{expand:%%undefine _with_%{1}}
%define subst_enable_to() %{expand:%%{?_enable_%{1}:--enable-%{2}}} %{expand:%%{?_disable_%{1}:--disable-%{2}}}
%define subst_with_to() %{expand:%%{?_with_%{1}:--with-%{2}}} %{expand:%%{?_without_%{1}:--without-%{2}}}
%{?_enable_smp_io_thread:%set_disable port_tasks}
%define x86 i586
%define amd64 x86_64
%ifnarch %ix86 x86_64 arm sparc ppc
%set_without native
%endif
%{?_disable_hipe:%set_without otp_native}
%ifnarch %ix86 x86_64
%set_without icc
%endif
%define Name Erlang
%define ver R12B
Name: erlang
%define subver 5
Version: %ver.%subver
%define plevel a
Release: alt11.1
Summary: A programming language developed by Ericsson
License: EPL
Group: Development/Erlang
URL: http://www.%name.org
Source: otp%{?_with_minimal_src:_minimal}_src_%ver-%subver%plevel.tar
Patch0: otp-R12B-%subver%plevel-%release.patch
Patch1: otp-R12B-%subver%plevel-ffi.patch
Patch2: otp-R12B-%subver%plevel-mnesiaex.patch
Patch3: otp-R12B-%subver%plevel-opt.patch
Patch4: otp-R12B-%subver%plevel-beam_lib.patch
Patch5: otp-R12B-%subver%plevel-opt-tuples.patch
Requires: %name-otp = %version-%release
Provides: erlang_mod(hipe_bifs) = %version
Packager: Led <led at altlinux.ru>
BuildRequires(pre): rpm-macros-%name
BuildRequires: gcc-c++ flex libncurses-devel libunixODBC-devel symlinks
BuildRequires: zlib-devel libgd2-devel sh libffi-devel /proc
BuildRequires: rpm-build-%name >= 0.6.2
%{?_with_icc:BuildRequires: icc libicc-devel}
%if_with java
%if_enabled gcj
BuildRequires: jdkgcj
%else
BuildRequires: java-devel
%endif
%endif
%{?_with_ssl:BuildRequires: libssl-devel openssl}
%{?_with_gmp:BuildRequires: libgmp-devel}
%description
%Name is a programming language developed at Ericsson Computer Science
Laboratory. %Name provides many features which are more commonly
associated with an operating system: concurrent processes, scheduling,
memory management, distribution, networking, etc.
%package devel
Summary: Libs and headers for devel for %Name
Group: Development/C
Requires: %name = %version-%release
%description devel
%Name is a programming language developed at Ericsson Computer Science
Laboratory. %Name provides many features which are more commonly
associated with an operating system: concurrent processes, scheduling,
memory management, distribution, networking, etc.
This package contains Libs and headers for devel for %Name.
%package megaco-common
Summary: H.248 support for %Name - common files
Group: Development/Erlang
Requires: %name = %version-%release
%description megaco-common
Megaco (aka H.248) is a signalling protocol used in VoIP networks.
This package contains common %Name Megaco files.
%package megaco-devel
Summary: Headers for %Name megaco modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-megaco = %version-%release
%description megaco-devel
Headers for %Name megaco modules.
%package megaco
Summary: H.248 support for %Name
Group: Development/Erlang
BuildArch: noarch
Provides: %name-megaco-modules = %version-%release
Requires: %name-megaco-common = %version-%release
Requires: %name-visual = %version-%release
%description megaco
Megaco (aka H.248) is a signalling protocol used in VoIP networks.
This package contains modules for %Name Megaco.
%package visual-common
Summary: Standart visual applications for %Name - common files
Group: Development/Erlang
Requires: %name = %version-%release
Requires: tk
%description visual-common
Standard visual applications for %Name programming language.
This package contains common files for %Name visual applications.
%package visual-devel
Summary: Headers for standart visual %Name modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-visual-modules = %version-%release
%description visual-devel
Headers for standart visual %Name modules.
%package visual
Summary: Standart visual applications for %Name
Group: Development/Erlang
BuildArch: noarch
Provides: %name-visual-modules = %version-%release
Requires: %name-visual-common = %version-%release
%description visual
Standard visual applications and modules for %Name programming
language.
%package odbc-common
Summary: ODBC support for %Name - common files
Group: Development/Erlang
Requires: %name = %version-%release
%description odbc-common
ODBC support for %Name programming language.
This package contains common %Name ODBC files.
%package odbc-devel
Summary: Headers for %Name ODBC modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-odbc-modules = %version-%release
%description odbc-devel
Headers for %Name ODBC modules.
%package odbc
Summary: ODBC support for %Name
Group: Development/Erlang
BuildArch: noarch
Provides: %name-odbc-modules = %version-%release
Requires: %name-odbc-common = %version-%release
%description odbc
ODBC support for %Name programming language.
%package common_test-common
Summary: A portable framework for automatic testing %Name applications - common files
Group: Development/Erlang
Requires: %name = %version-%release
%description common_test-common
A portable framework for automatic testing %Name applications.
This package contains common %Name common_test files.
%package common_test-devel
Summary: Headers for %Name common_test modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-common_test-modules = %version-%release
%description common_test-devel
Headers for %Name common_test modules.
%package common_test
Summary: A portable framework for automatic testing %Name applications
Group: Development/Erlang
BuildArch: noarch
Provides: %name-common_test-modules = %version-%release
Requires: %name-common_test-common = %version-%release
%description common_test
A portable framework for automatic testing %Name applications.
%package docbuilder-common
Summary: Tool for generating HTML documentation for %Name applications - common files
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
%description docbuilder-common
Tool for generating HTML documentation for %Name applications.
This package contains common %Name docbuilder files.
%package docbuilder-devel
Summary: Headers for %Name docbuilder modules
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-docbuilder-modules = %version-%release
%description docbuilder-devel
Headers for %Name docbuilder modules.
%package docbuilder
Summary: Tool for generating HTML documentation for %Name applications
Group: Development/Erlang
BuildArch: noarch
Provides: %name-docbuilder-modules = %version-%release
Requires: %name-docbuilder-common = %version-%release
%description docbuilder
Tool for generating HTML documentation for %Name applications.
%package examples
Summary: OTP examples
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
%description examples
OTP examples.
%package otp-common
Summary: Standard %Name OTP - common files
Group: Development/Erlang
Provides: otp-common = %version-%release
Requires: %name = %version-%release
%description otp-common
Standard %Name OTP.
This package contains common %Name OTP files.
%package otp-devel
Summary: Headers for standard %Name OTP
Group: Development/Erlang
BuildArch: noarch
Provides: otp-devel = %version-%release
Requires: %name-otp-modules = %version-%release
%description otp-devel
Headers for standard %Name OTP.
%package otp
Summary: Standard %Name OTP
Group: Development/Erlang
BuildArch: noarch
Provides: %name-otp-modules = %version-%release
Provides: otp = %version-%release
Requires: %name-otp-common = %version-%release
Conflicts: erlang-eunit = 2.0
%description otp
Standard %Name OTP.
%if_with java
%package jinterface
Summary: %Name's level interface to Java
Group: Development/Erlang
BuildArch: noarch
Requires: %name-otp = %version-%release
%description jinterface
%Name's level interface to Java.
%endif
%package full
Summary: Full %Name/OTP package
Group: Development/Erlang
BuildArch: noarch
Requires: %name = %version-%release
Requires: %name-megaco = %version-%release
Requires: %name-odbc = %version-%release
Requires: %name-visual = %version-%release
Requires: %name-docbuilder = %version-%release
Requires: %name-common_test = %version-%release
Requires: %name-examples = %version-%release
%{?_with_java:Requires: %name-jinterface = %version-%release}
%description full
%Name is a programming language developed at Ericsson Computer Science
Laboratory. %Name provides many features which are more commonly
associated with an operating system: concurrent processes, scheduling,
memory management, distribution, networking, etc.
This package requires all standard %Name/OTP subpackages.
%if_with otp_debug
%package otp-debug
Summary: Standard %Name OTP modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-otp-modules-debug = %version-%release
Provides: otp-debug = %version-%release
Requires: %name-otp-common = %version-%release
#Provides: %name-otp-modules = %version-%release
#Provides: %name-otp = %version-%release
Conflicts: erlang-eunit-debug = 2.0
%description otp-debug
Standard %Name OTP modules with debug information.
%package megaco-debug
Summary: H.248 support for %Name - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-megaco-modules-debug = %version-%release
Requires: %name-megaco-common = %version-%release
#Provides: %name-megaco = %version-%release
#Provides: %name-megaco-modules = %version-%release
%description megaco-debug
Megaco (aka H.248) is a signalling protocol used in VoIP networks.
This package contains modules for %Name Megaco with debug information.
%package visual-debug
Summary: Standart visual applications for %Name - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-visual-modules-debug = %version-%release
Requires: %name-visual-common = %version-%release
#Provides: %name-visual = %version-%release
#Provides: %name-visual-modules = %version-%release
%description visual-debug
Standard visual applications for %Name programming language.
This package contains modules for visual applications with debug
information.
%package odbc-debug
Summary: ODBC support for %Name - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-odbc-modules-debug = %version-%release
Requires: %name-odbc-common = %version-%release
#Provides: %name-odbc = %version-%release
#Provides: %name-odbc-modules = %version-%release
%description odbc-debug
ODBC support for %Name programming language.
This package contains modules for odbc with debug information.
%package common_test-debug
Summary: A portable framework for automatic testing %Name applications - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-common_test-modules-debug = %version-%release
Requires: %name-common_test-common = %version-%release
#Provides: %name-common_test = %version-%release
#Provides: %name-common_test-modules = %version-%release
%description common_test-debug
A portable framework for automatic testing %Name applications.
This package contains modules for common_test with debug information.
%package docbuilder-debug
Summary: Tool for generating HTML documentation for %Name applications - modules with debug information
Group: Development/Erlang
BuildArch: noarch
Provides: %name-docbuilder-modules-debug = %version-%release
Requires: %name-docbuilder-common = %version-%release
#Provides: %name-docbuilder = %version-%release
#Provides: %name-docbuilder-modules = %version-%release
%description docbuilder-debug
Tool for generating HTML documentation for %Name applications.
This package contains modules for docbuilder with debug information.
%endif
%if_with otp_native
%package otp-native
Summary: Standard %Name OTP modules with native CPU code
Group: Development/Erlang
Provides: %name-otp-modules-native = %version-%release
Provides: otp-native = %version-%release
Requires: %name-otp-common = %version-%release
#Provides: %name-otp = %version-%release
#Provides: %name-otp-modules = %version-%release
%description otp-native
Standard %Name OTP modules with native CPU code.
%package megaco-native
Summary: H.248 support for %Name - modules with native CPU code
Group: Development/Erlang
Provides: %name-megaco-modules-native = %version-%release
Requires: %name-megaco-common = %version-%release
#Provides: %name-megaco = %version-%release
#Provides: %name-megaco-modules = %version-%release
%description megaco-native
Megaco (aka H.248) is a signalling protocol used in VoIP networks.
This package contains modules for %Name Megaco with native CPU code.
%package visual-native
Summary: Standart visual applications for %Name - modules with native CPU code
Group: Development/Erlang
Provides: %name-visual-modules-native = %version-%release
Requires: %name-visual-common = %version-%release
#Provides: %name-visual = %version-%release
#Provides: %name-visual-modules = %version-%release
%description visual-native
Standard visual applications for %Name programming language.
This package contains modules for visual applications with native
CPU code.
%package odbc-native
Summary: ODBC support for %Name - modules with native CPU code
Group: Development/Erlang
Provides: %name-odbc-modules-native = %version-%release
Requires: %name-odbc-common = %version-%release
#Provides: %name-odbc = %version-%release
#Provides: %name-odbc-modules = %version-%release
%description odbc-native
ODBC support for %Name programming language.
This package contains modules for odbc with native CPU code.
%package common_test-native
Summary: A portable framework for automatic testing %Name applications - modules with native CPU code
Group: Development/Erlang
Provides: %name-common_test-modules-native = %version-%release
Requires: %name-common_test-common = %version-%release
#Provides: %name-common_test = %version-%release
#Provides: %name-common_test-modules = %version-%release
%description common_test-native
A portable framework for automatic testing %Name applications.
This package contains modules for common_test with native CPU code.
%package docbuilder-native
Summary: Tool for generating HTML documentation for %Name applications - modules with native CPU code
Group: Development/Erlang
Provides: %name-docbuilder-modules-native = %version-%release
Requires: %name-docbuilder-common = %version-%release
#Provides: %name-docbuilder = %version-%release
#Provides: %name-docbuilder-modules = %version-%release
%description docbuilder-native
Tool for generating HTML documentation for %Name applications.
This package contains modules for docbuilder with native CPU code.
%endif
%prep
%setup -n otp_src_%ver-%subver
chmod -R u+w ./
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
subst "/^[[:blank:]]*ERL_COMPILE_FLAGS[[:blank:]]*/ s/[[:blank:]]*+debug_info//g" make/otp.mk.in
%build
%define _optlevel 3
%{?_enable_asm_optimize:%add_optflags -DASM_OPTIMIZE}
%{?_with_icc:%add_optflags -gcc -vec-guard-write -opt-multi-version-aggressive %{?_disable_gnu_ld:-ip}}
export CFLAGS="%optflags"
%undefine __libtoolize
%define _configure_script ./otp_build configure
./otp_build autoconf
%configure \
--libdir=%_libexecdir \
%{subst_enable threads} \
%{subst_enable_to smp smp-support} \
%{subst_enable kernel_poll kernel-poll} \
%{subst_enable hipe} \
%{subst_enable_to megaco_flex_scanner_lineno megaco-flex-scanner-lineno} \
%{subst_with ssl} \
%{subst_with_to ssl_zlib ssl-zlib} \
%{subst_with gmp} \
%{subst_enable sctp} \
%{subst_enable tsp} \
%{subst_enable fixalloc} \
%{subst_enable_to elib_malloc elib-malloc} \
%{subst_enable_to hybrid_heap hybrid-heap} \
%{subst_enable_to lock_checking lock-checking} \
%{subst_enable_to clock_gettime clock-gettime} \
--disable-erlang-mandir \
%{?_with_icc:CC=icc %{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}}
%make depend
%make_build %{?_with_icc:%{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}} emulator bootstrap_setup primary_bootstrap_copy
%{?_with_otp_native:%make_build %{?_with_icc:%{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}} hipe_bootstrap}
rm -f lib/kernel/ebin/*
export ERL_COMPILE_FLAGS="%{?_with_otp_debug:+debug_info}%{?_with_otp_native: +native +'{hipe,[o3]}'}"
%make_build %{?_with_icc:%{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}} libs dialyzer
%make_build %{?_with_icc:%{?_enable_gnu_ld:LD=gcc LIBADD="-lirc"}} local_setup
%install
%make_install ERLANG_LIBDIR=%buildroot%_otpdir ERLANG_ILIBDIR=%_otpdir INSTALL_PREFIX=%buildroot install
install -d -m 0755 %buildroot{%_otpdir/usr/include,%_includedir}
ln -sf %buildroot%_otpdir/{erts-*/include/*.h,usr/include/}
ln -sf %buildroot{%_otpdir/usr/include,%_includedir/%name}
for l in $(ls -d %buildroot%_otplibdir/* | grep -v '^%buildroot%_otplibdir/erl_interface-.*'); do
if [ -d $l/src ]; then
H=$(find $l/src -type f -name '*.hrl' | grep -v '.*_internal\.hrl$') ||:
if [ -n "$H" ]; then
[ -d $l/include ] || install -d -m 0755 $l/include
mv $H $l/include/
for f in $H; do
ln -sf $l/include/$(basename $f) $f
done
find $l/src/* -not -type l -not -type d -delete
else
rm -rf $l/src
fi
fi
done
rm -f %buildroot%_otplibdir/erl_interface-*/src/{INSTALL,Makefile*,*.mk,*/*.c}
rm -rf %buildroot%_otpdir/{lib/*/{{c,java}_src,*.mk,priv/obj},erts-*/src}
rm -f %buildroot%_otplibdir/*/*/*.{asn1,erl}
rm -f %buildroot%_otplibdir/orber-*/COSS/CosNaming/*.erl
rm -f %buildroot%_otplibdir/*/priv/bin/*.bat
rm -f %buildroot%_otplibdir/*/priv/*.in
rm -f %buildroot%_otplibdir/*/info
find %buildroot -type f -name '*.src' -delete
find %buildroot -empty -delete
install -d -m 0755 %buildroot%_docdir/%name-%version
install -m 0644 AUTHORS EPLICENCE %buildroot%_docdir/%name-%version/
rm -rf %buildroot%_otpdir/{Install,misc,usr/lib}
subst 's|%buildroot||' %buildroot%_otpdir/{{,erts-*/}bin/{erl,start},releases/RELEASES}
sed 's|^ROOTDIR=|&%buildroot|' %buildroot%_otpdir/bin/erl > erl.buildroot
chmod 755 erl.buildroot
%define __erlang %_builddir/%buildsubdir/erl.buildroot
%define __erlc env ERLC_EMULATOR=%__erlang %buildroot%_otpdir/bin/erlc
install_ebin()
{
local d f
f=$1
shift
for d in %buildroot%_otplibdir/*/ebin; do
install -d -m 0755 $d.$f
%__erlang -noshell -run beam_strip start -run erlang halt -extra -o $d.$f $ at $d/*.beam
done
cat > %buildroot%_otpdir/bin/erl.$f <<__EOF__
#!/bin/sh
exec %_otpdir/bin/erl -pa \$(ls -d %_otplibdir/*/ebin.$f) \$ at
__EOF__
chmod 755 %buildroot%_otpdir/bin/erl.$f
ln -sf %buildroot{%_otpdir/bin,%_bindir}/erl.$f
}
%{?_with_otp_debug:install_ebin debug -A -r CInf -c}
%{?_with_otp_native:install_ebin native -s -c}
for d in %buildroot%_otplibdir/*/ebin; do
%__erlang -noshell -run beam_strip start -run erlang halt -extra -s -A $d/*.beam
done
for f in dialyzer erl erlc escript run_erl start to_erl typer; do
ln -sf %buildroot%_otpdir{/erts-*,}/bin/$f
done
symlinks -scdr %buildroot
%add_findreq_skiplist %_otplibdir/megaco-*/examples/meas/*.sh.skel
%add_findreq_skiplist %_otplibdir/*/contribs/ebin/* %_otplibdir/*/examples/ebin/* %_otplibdir/*/examples/*/ebin/*
%files
%dir %_docdir/%name-%version
%_docdir/%name-%version/*
%_bindir/*
%dir %_otpdir
%dir %_otpdir/bin
%_otpdir/bin/*
%dir %_otpdir/erts-*
%_otpdir/erts-*/bin
%_otpdir/releases
%dir %_otpdir/usr
%dir %_otplibdir
%if_with otp_debug
%exclude %_otpdir/bin/*.debug
%exclude %_bindir/*.debug
%endif
%if_with otp_native
%exclude %_otpdir/bin/*.native
%exclude %_bindir/*.native
%endif
%exclude %_otpdir/bin/typer*
%exclude %_bindir/typer*
%exclude %_otpdir/erts-*/bin/typer
%files devel
%_otpdir/erts-*/lib
%_otpdir/erts-*/include
%_otpdir/usr/include
%_otplibdir/erl_interface-*/*
%exclude %_otplibdir/erl_interface-*/bin
%_includedir/%name
%files otp-common
%_otplibdir/*
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/dialyzer-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/erl_interface-*/include
%exclude %_otplibdir/erl_interface-*/lib
%exclude %_otplibdir/erl_interface-*/src
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%{?_with_java:%exclude %_otplibdir/jinterface-*}
%exclude %_otplibdir/*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/*/ebin.native}
%exclude %_otplibdir/*/examples
%exclude %_otplibdir/*/contribs
%exclude %_otplibdir/*/include
%exclude %_otplibdir/*/src
%exclude %_otplibdir/hipe-*/*/*.hrl
%exclude %_otplibdir/hipe-*/*/*.inc
%exclude %_otplibdir/orber-*/COSS/CosNaming/*.hrl
%files otp-devel
%_otplibdir/*/include
%_otplibdir/*/src
%_otplibdir/hipe-*/*/*.hrl
%_otplibdir/hipe-*/*/*.inc
%_otplibdir/orber-*/COSS/CosNaming/*.hrl
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/dialyzer-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/erl_interface-*
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%{?_with_java:%exclude %_otplibdir/jinterface-*}
%files otp
%_otplibdir/*/ebin
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/dialyzer-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%{?_enable_hipe:%exclude %_otplibdir/hipe-*/ebin/hipe_tool*}
%exclude %_otplibdir/observer-*/ebin/etop*
%exclude %_otplibdir/observer-*/ebin/ttb_et*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%files megaco-common
%_otplibdir/megaco-*
%exclude %_otplibdir/megaco-*/examples
%exclude %_otplibdir/megaco-*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/megaco-*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/megaco-*/ebin.native}
%exclude %_otplibdir/megaco-*/include
%exclude %_otplibdir/megaco-*/src
%files megaco-devel
%_otplibdir/megaco-*/include
%_otplibdir/megaco-*/src
%files megaco
%_otplibdir/megaco-*/ebin
%files visual-common
%_otpdir/erts-*/bin/typer
%_otpdir/bin/typer*
%_bindir/typer*
%_otplibdir/appmon-*
%_otplibdir/debugger-*
%_otplibdir/dialyzer-*
%_otplibdir/et-*
%_otplibdir/gs-*
%_otplibdir/pman-*
%_otplibdir/toolbar-*
%_otplibdir/tv-*
%_otplibdir/typer-*
%exclude %_otplibdir/*/ebin
%exclude %_otplibdir/*/examples
%exclude %_otplibdir/*/contribs
%exclude %_otplibdir/*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/*/ebin.native}
%exclude %_otplibdir/*/include
%exclude %_otplibdir/*/src
%files visual-devel
%_otplibdir/appmon-*/include
%_otplibdir/appmon-*/src
%_otplibdir/debugger-*/include
%_otplibdir/debugger-*/src
%_otplibdir/dialyzer-*/include
%_otplibdir/dialyzer-*/src
%_otplibdir/et-*/include
%_otplibdir/gs-*/include
%_otplibdir/gs-*/src
%_otplibdir/pman-*/include
%_otplibdir/pman-*/src
%_otplibdir/toolbar-*/include
%_otplibdir/toolbar-*/src
%_otplibdir/tv-*/include
%_otplibdir/tv-*/src
%_otplibdir/typer-*/include
%_otplibdir/typer-*/src
%files visual
%_otplibdir/appmon-*/ebin
%_otplibdir/debugger-*/ebin
%_otplibdir/dialyzer-*/ebin
%_otplibdir/et-*/ebin
%_otplibdir/gs-*/ebin
%{?_enable_hipe:%_otplibdir/hipe-*/ebin/hipe_tool*}
%_otplibdir/observer-*/ebin/etop*
%_otplibdir/observer-*/ebin/ttb_et*
%_otplibdir/pman-*/ebin
%_otplibdir/toolbar-*/ebin
%_otplibdir/tv-*/ebin
%_otplibdir/typer-*/ebin
%files odbc-common
%_otplibdir/odbc-*
%exclude %_otplibdir/odbc-*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/odbc-*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/odbc-*/ebin.native}
%exclude %_otplibdir/odbc-*/include
%files odbc-devel
%_otplibdir/odbc-*/include
%files odbc
%_otplibdir/odbc-*/ebin
%files common_test-common
%_otplibdir/common_test-*
%exclude %_otplibdir/common_test-*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/common_test-*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/common_test-*/ebin.native}
%exclude %_otplibdir/common_test-*/include
%exclude %_otplibdir/common_test-*/src
%files common_test-devel
%_otplibdir/common_test-*/include
%_otplibdir/common_test-*/src
%files common_test
%_otplibdir/common_test-*/ebin
%files docbuilder-common
%_otplibdir/docbuilder-*
%exclude %_otplibdir/docbuilder-*/ebin
%{?_with_otp_debug:%exclude %_otplibdir/docbuilder-*/ebin.debug}
%{?_with_otp_native:%exclude %_otplibdir/docbuilder-*/ebin.native}
%exclude %_otplibdir/docbuilder-*/include
%exclude %_otplibdir/docbuilder-*/src
%files docbuilder-devel
%_otplibdir/docbuilder-*/include
%_otplibdir/docbuilder-*/src
%files docbuilder
%_otplibdir/docbuilder-*/ebin
%files examples
%_otplibdir/*/examples
%_otplibdir/*/contribs
%files full
%if_with otp_debug
%files otp-debug
%_otplibdir/*/ebin.debug
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%{?_enable_hipe:%exclude %_otplibdir/hipe-*/ebin.debug/hipe_tool*}
%exclude %_otplibdir/observer-*/ebin.debug/etop*
%exclude %_otplibdir/observer-*/ebin.debug/ttb_et*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%_otpdir/bin/*.debug
%_bindir/*.debug
%files megaco-debug
%_otplibdir/megaco-*/ebin.debug
%files visual-debug
%_otplibdir/appmon-*/ebin.debug
%_otplibdir/debugger-*/ebin.debug
%_otplibdir/et-*/ebin.debug
%_otplibdir/gs-*/ebin.debug
%{?_enable_hipe:%_otplibdir/hipe-*/ebin.debug/hipe_tool*}
%_otplibdir/observer-*/ebin.debug/etop*
%_otplibdir/observer-*/ebin.debug/ttb_et*
%_otplibdir/pman-*/ebin.debug
%_otplibdir/toolbar-*/ebin.debug
%_otplibdir/tv-*/ebin.debug
%_otplibdir/typer-*/ebin.debug
%files odbc-debug
%_otplibdir/odbc-*/ebin.debug
%files common_test-debug
%_otplibdir/common_test-*/ebin.debug
%files docbuilder-debug
%_otplibdir/docbuilder-*/ebin.debug
%endif
%if_with otp_native
%files otp-native
%_otplibdir/*/ebin.native
%exclude %_otplibdir/megaco-*
%exclude %_otplibdir/appmon-*
%exclude %_otplibdir/common_test-*
%exclude %_otplibdir/debugger-*
%exclude %_otplibdir/et-*
%exclude %_otplibdir/gs-*
%exclude %_otplibdir/hipe-*/ebin.native/hipe_tool*
%exclude %_otplibdir/observer-*/ebin.native/etop*
%exclude %_otplibdir/observer-*/ebin.native/ttb_et*
%exclude %_otplibdir/pman-*
%exclude %_otplibdir/toolbar-*
%exclude %_otplibdir/tv-*
%exclude %_otplibdir/typer-*
%exclude %_otplibdir/odbc-*
%exclude %_otplibdir/docbuilder-*
%_otpdir/bin/*.native
%_bindir/*.native
%files megaco-native
%_otplibdir/megaco-*/ebin.native
%files visual-native
%_otplibdir/appmon-*/ebin.native
%_otplibdir/debugger-*/ebin.native
%_otplibdir/et-*/ebin.native
%_otplibdir/gs-*/ebin.native
%_otplibdir/hipe-*/ebin.native/hipe_tool*
%_otplibdir/observer-*/ebin.native/etop*
%_otplibdir/observer-*/ebin.native/ttb_et*
%_otplibdir/pman-*/ebin.native
%_otplibdir/toolbar-*/ebin.native
%_otplibdir/tv-*/ebin.native
%_otplibdir/typer-*/ebin.native
%files odbc-native
%_otplibdir/odbc-*/ebin.native
%files common_test-native
%_otplibdir/common_test-*/ebin.native
%files docbuilder-native
%_otplibdir/docbuilder-*/ebin.native
%endif
%if_with java
%files jinterface
%_otplibdir/jinterface-*
%endif
%changelog
…
Полный changelog можно просмотреть здесь