]> git.pld-linux.org Git - packages/dmd.git/blame - dmd.spec
- disable dynamic linking with libphobos by default (causes symbol clashes between...
[packages/dmd.git] / dmd.spec
CommitLineData
fbcc5afc
JB
1#
2# Conditional build:
3%bcond_with dynamic # dynamic linking with libphobos (doesn't work properly as of 2.065.0)
4#
39aab3ac
JB
5Summary: Digital Mars D compiler
6Summary(pl.UTF-8): Digital Mars D - kompilator języka D
7Name: dmd
0753fbab 8Version: 2.065.0
39aab3ac
JB
9Release: 1
10# Digital Mars is proprietary license (not redistributable)
fbcc5afc 11License: Boost v1.0 (D runtime, Phobos, tools), GPL v1+ or Artistic (compiler frontend), Digital Mars (the rest)
39aab3ac 12Group: Development/Languages
0753fbab
JB
13Source0: http://downloads.dlang.org/releases/2014/%{name}.%{version}.zip
14# NoSource0-md5: a17a699a7e4715658393819e9dc1814a
fbcc5afc
JB
15Source1: https://github.com/D-Programming-Language/tools/archive/v%{version}/d-tools-%{version}.tar.gz
16# Source1-md5: d6b0b7a2a6b90a1374202c7582fc38e7
bcce314d
JB
17Patch0: %{name}-system-zlib.patch
18Patch1: %{name}-shared.patch
39aab3ac
JB
19NoSource: 0
20URL: http://dlang.org/dmd-linux.html
bcce314d 21BuildRequires: curl-devel
39aab3ac 22BuildRequires: libstdc++-devel
bcce314d 23BuildRequires: zlib-devel
fbcc5afc 24%if %{with dynamic}
bcce314d 25Requires: %{name}-libs = %{version}-%{release}
fbcc5afc
JB
26%endif
27# used as linker
28Requires: gcc
39aab3ac
JB
29ExclusiveArch: %{ix86} %{x8664}
30BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
31
32%ifarch %{ix86}
33%define model 32
34%else
35%define model 64
36%endif
37
38%description
39Digital Mars D compiler.
40
41%description -l pl.UTF-8
42Digital Mars D - kompilator języka D.
43
bcce314d
JB
44%package libs
45Summary: Phobos runtime library for D language
46Summary(pl.UTF-8): Biblioteka uruchomieniowa Phobos dla języka D
47Group: Libraries
48
49%description libs
50Phobos runtime library for D language.
51
52%description libs -l pl.UTF-8
53Biblioteka uruchomieniowa Phobos dla języka D.
54
55%package static
56Summary: Phobos and D-runtime static libraries for D language
57Summary(pl.UTF-8): Biblioteki statyczne Phobos oraz D-runtime dla języka D
58Group: Development/Libraries
59Requires: %{name} = %{version}-%{release}
60
61%description static
62Phobos and D-runtime static libraries for D language.
63
64%description static -l pl.UTF-8
65Biblioteki statyczne Phobos oraz D-runtime dla języka D.
66
39aab3ac 67%prep
fbcc5afc
JB
68%setup -q -n dmd2 -a1
69%{__mv} tools-%{version} tools
70
bcce314d 71%patch0 -p1
fbcc5afc 72%{?with_dynamic:%patch1 -p1}
39aab3ac 73
bcce314d 74echo "%{version}" > src/dmd/VERSION
39aab3ac
JB
75
76cp -p src/dmd/backendlicense.txt dmd-backendlicense.txt
77cp -p src/dmd/readme.txt dmd-readme.txt
78cp -p src/druntime/LICENSE druntime-LICENSE
0753fbab 79cp -p src/druntime/README.md druntime-README.md
39aab3ac
JB
80
81%build
82%{__make} -C src/dmd -f posix.mak \
83 OS=LINUX \
84 TARGET_CPU=X86 \
85 MODEL=%{model} \
86 HOST_CC="%{__cxx}" \
87 GFLAGS='%{rpmcxxflags} $(WARNINGS) -D__pascal= -fno-exceptions'
88
89DMD=$(pwd)/src/dmd/dmd
bcce314d
JB
90for t in target lib/libdruntime-linux%{model}.so ; do
91%{__make} -C src/druntime -f posix.mak $t \
39aab3ac
JB
92 OS=linux \
93 MODEL=%{model} \
94 CC="%{__cc}" \
95 CFLAGS="%{rpmcflags} -m%{model} -fPIC" \
96 DMD="$DMD" \
97 PIC="-fPIC"
bcce314d 98done
39aab3ac
JB
99
100%{__make} -C src/phobos -f posix.mak \
101 OS=linux \
102 MODEL=%{model} \
103 CC="%{__cc}" \
104 CFLAGS="%{rpmcflags} -m%{model} -fPIC" \
105 DMD="$DMD" \
bcce314d 106 LIBCURL_STUB= \
39aab3ac
JB
107 PIC="-fPIC"
108
fbcc5afc
JB
109%{__make} -C tools -f posix.mak \
110 OS=linux \
111 MODEL=%{model} \
112 CC="%{__cc}" \
113 CFLAGS="%{rpmcflags} -m%{model} -fPIC" \
114 DMD="$DMD -I$(pwd)/src/phobos -I$(pwd)/src/druntime -L-L$(pwd)/src/phobos/generated/linux/release/%{model}"
115
39aab3ac
JB
116%install
117rm -rf $RPM_BUILD_ROOT
fbcc5afc 118install -d $RPM_BUILD_ROOT{%{_includedir}/d/dmd/phobos/etc/c,%{_libdir},%{_sysconfdir},%{_docdir}/dmd}
39aab3ac
JB
119
120install -Dp src/dmd/dmd $RPM_BUILD_ROOT%{_bindir}/dmd
0753fbab 121cp -p src/druntime/lib/libdruntime-linux%{model}* $RPM_BUILD_ROOT%{_libdir}
bcce314d 122cp -a src/phobos/generated/linux/release/%{model}/libphobos2.so* $RPM_BUILD_ROOT%{_libdir}
39aab3ac
JB
123cp -p src/phobos/generated/linux/release/%{model}/libphobos2.a $RPM_BUILD_ROOT%{_libdir}
124cp -pr src/druntime/import $RPM_BUILD_ROOT%{_includedir}/d/dmd/druntime
125cp -pr src/phobos/{std,*.d} $RPM_BUILD_ROOT%{_includedir}/d/dmd/phobos
fbcc5afc 126cp -p src/phobos/etc/c/*.d $RPM_BUILD_ROOT%{_includedir}/d/dmd/phobos/etc/c
39aab3ac 127cp -pr src/druntime/doc $RPM_BUILD_ROOT%{_docdir}/dmd/druntime
fbcc5afc 128install tools/generated/linux/%{model}/{ddemangle,rdmd} $RPM_BUILD_ROOT%{_bindir}
39aab3ac 129install -Dp man/man1/dmd.1 $RPM_BUILD_ROOT%{_mandir}/man1/dmd.1
0753fbab 130install -Dp man/man5/dmd.conf.5 $RPM_BUILD_ROOT%{_mandir}/man5/dmd.conf.5
39aab3ac
JB
131
132cat >$RPM_BUILD_ROOT%{_sysconfdir}/dmd.conf <<EOF
133[Environment]
134DFLAGS=-I/usr/include/d/dmd/phobos -I/usr/include/d/dmd/druntime -L-L%{_libdir} -L--no-warn-search-mismatch -L--export-dynamic
135EOF
136
137%clean
138rm -rf $RPM_BUILD_ROOT
139
bcce314d
JB
140%post libs -p /sbin/ldconfig
141%postun libs -p /sbin/ldconfig
142
fbcc5afc
JB
143%files libs
144%defattr(644,root,root,755)
145%attr(755,root,root) %{_libdir}/libphobos2.so.*.*.*
146%attr(755,root,root) %ghost %{_libdir}/libphobos2.so.0.65
147
39aab3ac
JB
148%files
149%defattr(644,root,root,755)
150%doc README.TXT license.txt dmd-*.txt druntime-*
fbcc5afc 151%attr(755,root,root) %{_bindir}/ddemangle
39aab3ac 152%attr(755,root,root) %{_bindir}/dmd
fbcc5afc
JB
153%attr(755,root,root) %{_bindir}/rdmd
154%if %{with dynamic}
bcce314d
JB
155%attr(755,root,root) %{_libdir}/libphobos2.so
156%attr(755,root,root) %{_libdir}/libdruntime-linux%{model}.so
fbcc5afc 157%endif
0753fbab
JB
158%{_libdir}/libdruntime-linux%{model}so.a
159%{_libdir}/libdruntime-linux%{model}so.o
39aab3ac
JB
160%{_sysconfdir}/dmd.conf
161%dir %{_includedir}/d
162%{_includedir}/d/dmd
163%{_mandir}/man1/dmd.1*
164%{_mandir}/man5/dmd.conf.5*
165%{_docdir}/dmd
bcce314d 166
fbcc5afc 167%if %{with dynamic}
bcce314d
JB
168%files static
169%defattr(644,root,root,755)
fbcc5afc 170%endif
bcce314d
JB
171%{_libdir}/libdruntime-linux%{model}.a
172%{_libdir}/libdruntime-linux%{model}.o
173%{_libdir}/libphobos2.a
This page took 0.084985 seconds and 4 git commands to generate.