+#
+# Conditional build:
+%bcond_with dynamic # dynamic linking with libphobos (doesn't work properly as of 2.065.0)
+#
Summary: Digital Mars D compiler
Summary(pl.UTF-8): Digital Mars D - kompilator języka D
Name: dmd
Version: 2.065.0
Release: 1
# Digital Mars is proprietary license (not redistributable)
-License: Boost v1.0 (D runtime, Phobos), GPL v1+ or Artistic (compiler frontend), Digital Mars (the rest)
+License: Boost v1.0 (D runtime, Phobos, tools), GPL v1+ or Artistic (compiler frontend), Digital Mars (the rest)
Group: Development/Languages
Source0: http://downloads.dlang.org/releases/2014/%{name}.%{version}.zip
# NoSource0-md5: a17a699a7e4715658393819e9dc1814a
+Source1: https://github.com/D-Programming-Language/tools/archive/v%{version}/d-tools-%{version}.tar.gz
+# Source1-md5: d6b0b7a2a6b90a1374202c7582fc38e7
Patch0: %{name}-system-zlib.patch
Patch1: %{name}-shared.patch
NoSource: 0
BuildRequires: curl-devel
BuildRequires: libstdc++-devel
BuildRequires: zlib-devel
+%if %{with dynamic}
Requires: %{name}-libs = %{version}-%{release}
+%endif
+# used as linker
+Requires: gcc
ExclusiveArch: %{ix86} %{x8664}
BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
Biblioteki statyczne Phobos oraz D-runtime dla języka D.
%prep
-%setup -q -n dmd2
+%setup -q -n dmd2 -a1
+%{__mv} tools-%{version} tools
+
%patch0 -p1
-%patch1 -p1
+%{?with_dynamic:%patch1 -p1}
echo "%{version}" > src/dmd/VERSION
LIBCURL_STUB= \
PIC="-fPIC"
+%{__make} -C tools -f posix.mak \
+ OS=linux \
+ MODEL=%{model} \
+ CC="%{__cc}" \
+ CFLAGS="%{rpmcflags} -m%{model} -fPIC" \
+ DMD="$DMD -I$(pwd)/src/phobos -I$(pwd)/src/druntime -L-L$(pwd)/src/phobos/generated/linux/release/%{model}"
+
%install
rm -rf $RPM_BUILD_ROOT
-install -d $RPM_BUILD_ROOT{%{_includedir}/d/dmd/phobos,%{_libdir},%{_sysconfdir},%{_docdir}/dmd}
+install -d $RPM_BUILD_ROOT{%{_includedir}/d/dmd/phobos/etc/c,%{_libdir},%{_sysconfdir},%{_docdir}/dmd}
install -Dp src/dmd/dmd $RPM_BUILD_ROOT%{_bindir}/dmd
cp -p src/druntime/lib/libdruntime-linux%{model}* $RPM_BUILD_ROOT%{_libdir}
cp -p src/phobos/generated/linux/release/%{model}/libphobos2.a $RPM_BUILD_ROOT%{_libdir}
cp -pr src/druntime/import $RPM_BUILD_ROOT%{_includedir}/d/dmd/druntime
cp -pr src/phobos/{std,*.d} $RPM_BUILD_ROOT%{_includedir}/d/dmd/phobos
+cp -p src/phobos/etc/c/*.d $RPM_BUILD_ROOT%{_includedir}/d/dmd/phobos/etc/c
cp -pr src/druntime/doc $RPM_BUILD_ROOT%{_docdir}/dmd/druntime
+install tools/generated/linux/%{model}/{ddemangle,rdmd} $RPM_BUILD_ROOT%{_bindir}
install -Dp man/man1/dmd.1 $RPM_BUILD_ROOT%{_mandir}/man1/dmd.1
install -Dp man/man5/dmd.conf.5 $RPM_BUILD_ROOT%{_mandir}/man5/dmd.conf.5
%post libs -p /sbin/ldconfig
%postun libs -p /sbin/ldconfig
+%files libs
+%defattr(644,root,root,755)
+%attr(755,root,root) %{_libdir}/libphobos2.so.*.*.*
+%attr(755,root,root) %ghost %{_libdir}/libphobos2.so.0.65
+
%files
%defattr(644,root,root,755)
%doc README.TXT license.txt dmd-*.txt druntime-*
+%attr(755,root,root) %{_bindir}/ddemangle
%attr(755,root,root) %{_bindir}/dmd
+%attr(755,root,root) %{_bindir}/rdmd
+%if %{with dynamic}
%attr(755,root,root) %{_libdir}/libphobos2.so
%attr(755,root,root) %{_libdir}/libdruntime-linux%{model}.so
+%endif
%{_libdir}/libdruntime-linux%{model}so.a
%{_libdir}/libdruntime-linux%{model}so.o
%{_sysconfdir}/dmd.conf
%{_mandir}/man5/dmd.conf.5*
%{_docdir}/dmd
-%files libs
-%defattr(644,root,root,755)
-%attr(755,root,root) %{_libdir}/libphobos2.so.*.*.*
-%attr(755,root,root) %ghost %{_libdir}/libphobos2.so.0.65
-
+%if %{with dynamic}
%files static
%defattr(644,root,root,755)
+%endif
%{_libdir}/libdruntime-linux%{model}.a
%{_libdir}/libdruntime-linux%{model}.o
%{_libdir}/libphobos2.a