From 480372275284b83e04a9be0027658d03b8621dac Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Tue, 1 Nov 2016 14:12:07 +0100 Subject: [PATCH] Add a bootstrap build option; enable bootstrap ldc 1.0.0 and newer need a working D compiler to build, causing a circular dependency on itself. To make it possible to bootstrap ldc, upstream is going to keep on supporting 0.17.x for building newer ldc versions as this is the last version that only needs a C++ compiler for building. This commit adds a bootstrap define to allow boostrapping with ldc version 0.17.2. --- ldc.spec | 23 +++++++++++++++++++++++ sources | 1 + 2 files changed, 24 insertions(+) diff --git a/ldc.spec b/ldc.spec index fe2503f..1071557 100644 --- a/ldc.spec +++ b/ldc.spec @@ -5,6 +5,11 @@ %global ldc_version 1.1.0 %global root %{name}-%ldc_version-beta3-src +# Enable this for bootstrapping with an older version that doesn't require a +# working D compiler to build itself +%global bootstrap 1 +%global bootstrap_version 0.17.2 + %undefine _hardened_build Name: ldc @@ -19,11 +24,16 @@ Group: Development/Languages License: BSD URL: https://github.com/ldc-developers/ldc Source0: https://github.com/ldc-developers/ldc/releases/download/v%ldc_version-beta3/%{name}-%ldc_version-beta3-src.tar.gz +%if 0%{?bootstrap} +Source1: https://github.com/ldc-developers/ldc/releases/download/v%{bootstrap_version}/%{name}-%{bootstrap_version}-src.tar.gz +%endif Source3: macros.%{name} ExclusiveArch: %{ldc_arches} +%if ! 0%{?bootstrap} BuildRequires: ldc +%endif BuildRequires: llvm-devel >= 3.0 BuildRequires: libconfig, libconfig-devel BuildRequires: cmake @@ -170,12 +180,24 @@ mkdir geany_config rm -fr %root/runtime/phobos/etc/c/zlib %build +%if 0%{?bootstrap} +tar xf %{SOURCE1} +mkdir build-bootstrap +pushd build-bootstrap +cmake ../%{name}-%{bootstrap_version}-src +make %{?_smp_mflags} +popd +%endif + mkdir build pushd build %cmake -DMULTILIB:BOOL=OFF -DBUILD_SHARED_LIBS:BOOL=ON \ -DINCLUDE_INSTALL_DIR:PATH=%{_includedir}/d \ -DSYSCONF_INSTALL_DIR:PATH=%{_sysconfdir} \ -DCMAKE_INSTALL_PREFIX:PATH=%{_prefix} \ +%if 0%{?bootstrap} + -DD_COMPILER:PATH=`pwd`/../build-bootstrap/bin/ldmd2 \ +%endif --enable-optimized .. make %{?_smp_mflags} VERBOSE=2 popd @@ -246,6 +268,7 @@ install -m0644 phobos.d.tags %{buildroot}/%{_datadir}/geany/tags/ %changelog * Mon Oct 31 2016 Kalev Lember - 1:1.1.0-0.1.beta3 - Update to 1.1.0 beta3 +- Add a bootstrap build option; enable bootstrap * Mon Oct 31 2016 Kalev Lember - 1:0.17.2-3 - Move ldc_arches macro to redhat-rpm-config diff --git a/sources b/sources index e74c63d..3cbc017 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ +df585811aa29d0e00d3ccb0d469dad30 ldc-0.17.2-src.tar.gz 7d796d7195df23a44136bd2ea74d23f3 ldc-1.1.0-beta3-src.tar.gz