%bcond_with bootstrap # build boostrap
%bcond_without verbose # disable verbose build
-%define svnrev 2577
+%define ver 0.1.9998
+%define svnrev 2700
Summary: A cross-platform build environment
Name: kBuild
-Version: 0.1.9998
-Release: 1
+Version: %{ver}.%{svnrev}
+Release: 3
Group: Development/Tools
# Most tools are from NetBSD, some are from FreeBSD, and make and sed are from GNU
License: BSD and GPL v2+
-URL: http://svn.netlabs.org/kbuild
Source0: %{name}-r%{svnrev}.tar.bz2
-# Source0-md5: d2ae623626f1e464333c384a2465a77a
+# Source0-md5: 7c394fbe248f903d0bc1aabd235dc0a9
Source1: get-source.sh
Patch0: %{name}-0.1.3-escape.patch
Patch1: %{name}-0.1.5-dprintf.patch
Patch2: %{name}-0.1.5-pthread.patch
+Patch3: re_string_fetch_byte_case-not-pure-attribute.patch
+Patch4: x32.patch
+URL: http://svn.netlabs.org/kbuild
BuildRequires: acl-devel
-BuildRequires: autoconf
-BuildRequires: automake
BuildRequires: byacc
-BuildRequires: cvs
BuildRequires: flex
-BuildRequires: gettext-devel
-%{!?with_bootstrap:BuildRequires: kBuild}
-ExclusiveArch: %{x8664} %{ix86}
+%if %{with bootstrap}
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: gettext-autopoint
+BuildRequires: libtool
+BuildRequires: texinfo
+%else
+BuildRequires: kBuild
+%endif
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
-%ifarch %{x8664}
+%ifarch %{x8664} x32
%define kbuild_arch amd64
%else
%define kbuild_arch x86
cross-platform portability.
The goals of the kBuild framework:
- - Similar behavior across all supported platforms
+- Similar behavior across all supported platforms
- Flexibility, don't create unnecessary restrictions preventing ad-hoc
solutions
- Makefiles can be simple to write and maintain
%patch0 -p1
%patch1 -p1
%patch2 -p1
+%patch3 -p1
+%patch4 -p1
cat > SvnInfo.kmk << EOF
KBUILD_SVN_REV := %{svnrev}
%{__sed} -i -e 's@_LDFLAGS\.%{kbuild_arch}*.*=@& %{rpmldflags}@g' Config.kmk
+%ifarch x32
+# probably should add full x32 configuration
+# but can't find place to submit code upstream, so this will do for now.
+# but then again, forcing -m64 is bad and pointless
+sed -i -e 's/-m64//' kBuild/tools/GCC64.kmk kBuild/tools/GXX64.kmk tests/Config.kmk Config.kmk
+%endif
+
%build
%define bootstrap_mflags %{?_smp_mflags} %{?with_verbose:KBUILD_VERBOSE=2} \\\
CC="%{__cc}" TOOL_GCC3_CC="%{__cc}" CFLAGS="%{rpmcflags}"
MY_INST_BIN_MODE=0755
ver=$(awk '/^KBUILD_VERSION =/{print $3}' Config.kmk)
-test "$ver" = %{version}
+test "$ver" = %{ver}
%if %{with bootstrap}
cd src/kmk