File haxe.spec of Package haxe

#
# spec file for package haxe
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.

# Please submit bugfixes or comments via http://bugs.opensuse.org/
#


%global commit_ocamllibs 7a83e902634e1db204f6e3a48c2439f63d83c141
%global commit_haxelib 4fefbd17a2d9a98200b621de801018af3896d68a

Name:           haxe
Version:        3.2.1
Release:        0
Summary:        Multiplatform opensource programming language
License:        GPL-2.0+ and MIT
Group:          Development/Languages/Other
# As described in http://haxe.org/foundation/open-source.html:
#   * The Haxe Compiler - GPLv2+
#   * The Haxe Standard Library - MIT
Url:            http://www.haxe.org
Source0:        https://github.com/HaxeFoundation/%{name}/archive/%{version}.tar.gz#/%{name}-%{version}.tar.gz
Source1:        https://github.com/HaxeFoundation/ocamllibs/archive/%{commit_ocamllibs}.tar.gz#/ocamllibs-%{commit_ocamllibs}.tar.gz
Source2:        https://github.com/HaxeFoundation/haxelib/archive/%{commit_haxelib}.tar.gz#/haxelib-%{commit_haxelib}.tar.gz
BuildRoot:      %{_tmppath}/%{name}-%{version}-build
BuildRequires:  help2man
BuildRequires:  nekovm >= 2.0.0
BuildRequires:  ocaml-camlp4-devel
BuildRequires:  pkgconfig(zlib)
Requires:       nekovm >= 2.0.0

%description
Haxe is an open-source high-level multiplatform programming language and compiler that can produce applications and source code for many different platforms from a single code-base. The Haxe compiler can compile Haxe source code to Adobe Flash SWF files, ActionScript 3, JavaScript, C++, PHP, C#, Java, Python, and Neko VM binary files.

%prep
%setup -q
pushd libs && tar -xf %{SOURCE1} --strip-components=1 && popd
pushd extra/haxelib_src && tar -xf %{SOURCE2} --strip-components=1 && popd

# script-without-shebang
# https://github.com/HaxeFoundation/haxe/commit/7ecbc2baaef0e2f653f43b01071ffff0050ec5d3
chmod a-x std/js/Boot.hx std/js/_std/Type.hx std/php/_std/haxe/ds/StringMap.hx
chmod a-x libs/extlib/extList.ml

%build
# note that the Makefile does not support parallel building

# Check to see if ocamlopt exists. If not, bytecompile everything.
# It is because ocamlopt may be missing in some architectures.
command -v ocamlopt && make || make BYTECODE=1

# Compile haxelib
make tools

chmod 755 haxe haxelib

%install
mkdir -p %{buildroot}%{_bindir}
mkdir -p %{buildroot}%{_datadir}/%{name}

cp -p haxe %{buildroot}%{_bindir}
cp -p haxelib %{buildroot}%{_bindir}
cp -rfp std %{buildroot}%{_datadir}/%{name}

# Generate man pages
mkdir -p %{buildroot}%{_mandir}/man1
help2man ./haxe --version-option=-version --no-discard-stderr --no-info --output=%{buildroot}%{_mandir}/man1/haxe.1
help2man ./haxelib --help-option=help --version-option=version --no-info --output=%{buildroot}%{_mandir}/man1/haxelib.1

%check
%{buildroot}%{_bindir}/haxe -version
pushd tests/unit && %{buildroot}%{_bindir}/haxe compile-macro.hxml && popd

%files
%defattr(-,root,root)
%doc README.md extra/LICENSE.txt extra/CHANGES.txt extra/CONTRIB.txt
%{_bindir}/haxe
%{_bindir}/haxelib
%{_mandir}/man1/haxe.1*
%{_mandir}/man1/haxelib.1*
%{_datadir}/%{name}/

%changelog
openSUSE Build Service is sponsored by