source: rtems/contrib/crossrpms/rtems4.10/m32c/rtems-4.10-m32c-rtems4.10-gcc.spec @ f1322b47

4.104.115
Last change on this file since f1322b47 was f1322b47, checked in by Ralf Corsepius <ralf.corsepius@…>, on 11/10/08 at 10:47:51

Regenerate.

  • Property mode set to 100644
File size: 13.7 KB
Line 
1#
2# Please send bugfixes or comments to
3#       http://www.rtems.org/bugzilla
4#
5
6%define _prefix                 /opt/rtems-4.10
7%define _exec_prefix            %{_prefix}
8%define _bindir                 %{_exec_prefix}/bin
9%define _sbindir                %{_exec_prefix}/sbin
10%define _libexecdir             %{_exec_prefix}/libexec
11%define _datarootdir            %{_prefix}/share
12%define _datadir                %{_datarootdir}
13%define _sysconfdir             %{_prefix}/etc
14%define _sharedstatedir         %{_prefix}/com
15%define _localstatedir          %{_prefix}/var
16%define _includedir             %{_prefix}/include
17%define _libdir                 %{_exec_prefix}/%{_lib}
18%define _mandir                 %{_datarootdir}/man
19%define _infodir                %{_datarootdir}/info
20%define _localedir              %{_datarootdir}/locale
21
22%ifos cygwin cygwin32 mingw mingw32
23%define _exeext .exe
24%else
25%define _exeext %{nil}
26%endif
27
28%ifos cygwin cygwin32
29%define optflags -O3 -pipe -march=i486 -funroll-loops
30%define _libdir                 %{_exec_prefix}/lib
31%define debug_package           %{nil}
32%endif
33
34%if "%{_build}" != "%{_host}"
35%define _host_rpmprefix rtems-4.10-%{_host}-
36%else
37%define _host_rpmprefix %{nil}
38%endif
39
40
41%define gcc_pkgvers 4.3.2
42%define gcc_version 4.3.2
43%define gcc_rpmvers %{expand:%(echo "4.3.2" | tr - _ )}
44
45%define newlib_version          1.16.0
46%define gccnewlib_version       gcc%{gcc_version}newlib%{newlib_version}
47
48%define mpfr_version    2.3.1
49
50Name:           rtems-4.10-m32c-rtems4.10-gcc
51Summary:        m32c-rtems4.10 gcc
52
53Group:          Development/Tools
54Version:        %{gcc_rpmvers}
55Release:        9%{?dist}
56License:        GPL
57URL:            http://gcc.gnu.org
58BuildRoot:      %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
59
60%define _use_internal_dependency_generator 0
61
62BuildRequires:  %{_host_rpmprefix}gcc
63
64%if "%{gcc_version}" >= "4.3.0"
65BuildRequires:  gmp-devel >= 4.1
66%if "%{_build}" != "%{_host}"
67BuildRequires:  %{_host_rpmprefix}gmp-devel
68BuildRequires:  %{_host_rpmprefix}mpfr-devel
69%endif
70%if 0%{?fedora} >= 8
71BuildRequires:  mpfr-devel >= 2.3.0
72%endif
73%if "%{?suse}" > "10.3"
74BuildRequires:  mpfr-devel >= 2.3.0
75%endif
76# These distros ship an insufficient mpfr
77%{?el4:%define  _build_mpfr     1}
78%{?suse10_2:%define     _build_mpfr     1}
79%{?suse10_3:%define     _build_mpfr     1}
80%endif
81
82%if "%{_build}" != "%{_host}"
83BuildRequires:  rtems-4.10-m32c-rtems4.10-gcc
84%endif
85
86%if "%{gcc_version}" >= "4.2.0"
87BuildRequires:  flex bison
88%endif
89
90
91BuildRequires:  texinfo >= 4.2
92BuildRequires:  rtems-4.10-m32c-rtems4.10-binutils
93
94Requires:       rtems-4.10-m32c-rtems4.10-binutils
95Requires:       rtems-4.10-m32c-rtems4.10-newlib = %{newlib_version}-%{release}
96
97
98%if "%{gcc_version}" >= "3.4"
99%define gcclib %{_libdir}/gcc
100%define gccexec %{_libexecdir}/gcc
101%else
102%define gcclib %{_libdir}/gcc-lib
103%define gccexec %{_libdir}/gcc-lib
104%endif
105
106%if "%{gcc_version}" == "4.3.2"
107Source0:        ftp://ftp.gnu.org/pub/gnu/gcc/%{gcc_pkgvers}/gcc-core-%{gcc_pkgvers}.tar.bz2
108Patch0:         ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/gcc-core-4.3.2-rtems4.10-20081003.diff
109%endif
110%{?_without_sources:NoSource:   0}
111
112Source50:       ftp://sources.redhat.com/pub/newlib/newlib-%{newlib_version}.tar.gz
113%if "%{newlib_version}" == "1.16.0"
114Patch50:        ftp://ftp.rtems.org/pub/rtems/SOURCES/4.10/newlib-1.16.0-rtems4.10-20081003.diff
115%endif
116%{?_without_sources:NoSource:   50}
117
118%if "%{gcc_version}" >= "4.3.0"
119Source60:    http://www.mpfr.org/mpfr-current/mpfr-%{mpfr_version}.tar.bz2
120%endif
121
122%description
123Cross gcc for m32c-rtems4.10.
124
125%prep
126%setup -c -T -n %{name}-%{version}
127
128%setup -q -T -D -n %{name}-%{version} -a0
129%{?PATCH0:%patch0 -p0}
130
131
132
133
134
135
136%setup -q -T -D -n %{name}-%{version} -a50
137cd newlib-%{newlib_version}
138%{?PATCH50:%patch50 -p1}
139cd ..
140  # Copy the C library into gcc's source tree
141  ln -s ../newlib-%{newlib_version}/newlib gcc-%{gcc_pkgvers}
142
143%if 0%{?_build_mpfr}
144%setup -q -T -D -n %{name}-%{version} -a60
145%{?PATCH60:%patch60 -p1}
146  # Build mpfr one-tree style
147  ln -s ../mpfr-%{mpfr_version} gcc-%{gcc_pkgvers}/mpfr
148%endif
149
150%if "%{gcc_version}" < "4.1.0"
151  sed -e 's/\(version_string.* = \"[^\"]*\)/\1 (RTEMS gcc-%{gcc_version}\/newlib-%{newlib_version}-%release)/' \
152  gcc-%{gcc_pkgvers}/gcc/version.c > gcc-%{gcc_pkgvers}/gcc/version.c~
153%else
154  sed -e 's/^#define VERSUFFIX.*$/#define VERSUFFIX \" (RTEMS gcc-%{gcc_version}\/newlib-%{newlib_version}-%{release})\"/' \
155    gcc-%{gcc_pkgvers}/gcc/version.c > gcc-%{gcc_pkgvers}/gcc/version.c~
156%endif
157  mv gcc-%{gcc_pkgvers}/gcc/version.c~ gcc-%{gcc_pkgvers}/gcc/version.c
158
159
160  # Fix timestamps
161  cd gcc-%{gcc_pkgvers}
162  contrib/gcc_update --touch
163  cd ..
164%build
165  mkdir -p build
166
167  cd build
168
169  languages="c"
170  export PATH="%{_bindir}:${PATH}"
171%if "%{_build}" != "%{_host}"
172  CFLAGS_FOR_BUILD="-g -O2 -Wall" \
173  CC="%{_host}-gcc ${RPM_OPT_FLAGS}" \
174%else
175# gcc is not ready to be compiled with -std=gnu99
176  CC=$(echo "%{__cc} ${RPM_OPT_FLAGS}" | sed -e 's,-std=gnu99 ,,') \
177%endif
178  ../gcc-%{gcc_pkgvers}/configure \
179    --prefix=%{_prefix} \
180    --bindir=%{_bindir} \
181    --exec_prefix=%{_exec_prefix} \
182    --includedir=%{_includedir} \
183    --libdir=%{_libdir} \
184    --libexecdir=%{_libexecdir} \
185    --mandir=%{_mandir} \
186    --infodir=%{_infodir} \
187    --datadir=%{_datadir} \
188    --build=%_build --host=%_host \
189    --target=m32c-rtems4.10 \
190    --disable-libstdcxx-pch \
191    --with-gnu-as --with-gnu-ld --verbose \
192    --with-newlib \
193    --with-system-zlib \
194    --disable-nls --without-included-gettext \
195    --disable-win32-registry \
196    --enable-version-specific-runtime-libs \
197    --enable-threads \
198    --enable-newlib-io-c99-formats \
199    --enable-languages="$languages" $optargs
200
201%if "%_host" != "%_build"
202  # Bug in gcc-3.2.1:
203  # Somehow, gcc doesn't get syslimits.h right for Cdn-Xs
204  mkdir -p gcc/include
205  cp ../gcc-%{gcc_pkgvers}/gcc/gsyslimits.h gcc/include/syslimits.h
206%endif
207
208  make %{?_smp_mflags} all
209  cd ..
210
211%install
212  export PATH="%{_bindir}:${PATH}"
213  rm -rf $RPM_BUILD_ROOT
214
215  cd build
216
217  make DESTDIR=$RPM_BUILD_ROOT install
218  cd ..
219
220  cd build/m32c-rtems4.10/newlib
221  make DESTDIR=$RPM_BUILD_ROOT install-info
222  cd ../../..
223
224%if "%{gcc_version}" <= "4.1.2"
225# Misplaced header file
226  if test -f $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h; then
227    mv $RPM_BUILD_ROOT%{_includedir}/mf-runtime.h \
228      $RPM_BUILD_ROOT%{gcclib}/m32c-rtems4.10/%{gcc_version}/include/
229  fi
230%endif
231
232  # host library
233  rm -f  ${RPM_BUILD_ROOT}%{_libdir}/libiberty.a
234
235  # We use the version from binutils
236  rm -f $RPM_BUILD_ROOT%{_bindir}/m32c-rtems4.10-c++filt%{_exeext}
237
238
239# Conflict with a native GCC's infos
240  rm -rf $RPM_BUILD_ROOT%{_infodir}
241
242# Conflict with a native GCC's man pages
243  rm -rf $RPM_BUILD_ROOT%{_mandir}/man7
244
245
246%if "%{gcc_version}" >= "3.4"
247  # Bug in gcc-3.4.0pre
248  rm -f $RPM_BUILD_ROOT%{_bindir}/m32c-rtems4.10-m32c-rtems4.10-gcjh%{_exeext}
249%endif
250
251%if "%{gcc_version}" >= "3.3"
252  # Bug in gcc-3.3.x/gcc-3.4.x: Despite we don't need fixincludes, it installs
253  # the fixinclude-install-tools
254  rm -rf ${RPM_BUILD_ROOT}%{gcclib}/m32c-rtems4.10/%{gcc_version}/install-tools
255  rm -rf ${RPM_BUILD_ROOT}%{gccexec}/m32c-rtems4.10/%{gcc_version}/install-tools
256%endif
257
258  # Collect multilib subdirectories
259  f=`build/gcc/xgcc -Bbuild/gcc/ --print-multi-lib | sed -e 's,;.*$,,'`
260
261  echo "%defattr(-,root,root,-)" > build/files.newlib
262  TGTDIR="%{_exec_prefix}/m32c-rtems4.10/lib"
263  for i in $f; do
264    case $i in
265    \.) echo "%dir ${TGTDIR}" >> build/files.newlib
266      ;;
267    *)  echo "%dir ${TGTDIR}/$i" >> build/files.newlib
268      ;;
269    esac
270  done
271
272  rm -f dirs ;
273  echo "%defattr(-,root,root,-)" >> dirs
274  echo "%dir %{_prefix}" >> dirs
275  echo "%dir %{_libdir}" >> dirs
276%if "%{gcc_version}" >= "3.4"
277  echo "%dir %{_libexecdir}" >> dirs
278%endif
279  echo "%dir %{gcclib}" >> dirs
280  echo "%dir %{gcclib}/m32c-rtems4.10" >> dirs
281
282  TGTDIR="%{gcclib}/m32c-rtems4.10/%{gcc_version}"
283  for i in $f; do
284    case $i in
285    \.) echo "%dir ${TGTDIR}" >> dirs
286      ;;
287    *)  echo "%dir ${TGTDIR}/$i" >> dirs
288      ;;
289    esac
290  done
291
292  # Collect files to go into different packages
293  cp dirs build/files.gcc
294  cp dirs build/files.g77
295  cp dirs build/files.gfortran
296  cp dirs build/files.objc
297  cp dirs build/files.gcj
298  cp dirs build/files.g++
299
300  TGTDIR="%{gcclib}/m32c-rtems4.10/%{gcc_version}"
301  f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
302  for i in $f; do
303    case $i in
304    *lib*.la) rm ${RPM_BUILD_ROOT}/$i ;; # ignore: gcc produces bogus libtool libs
305    *f771) ;;
306    *f951) ;;
307    *cc1) ;;
308    *cc1obj) ;;
309    *cc1plus) ;; # ignore: explicitly put into rpm elsewhere
310    *collect2) ;;
311    *libobjc*) echo "$i" >> build/files.objc ;;
312    *include/objc*) ;;
313    *include/g++*);;
314    *include/c++*);;
315    *adainclude*);;
316    *adalib*);;
317    *gnat1);;
318    *jc1) ;;
319    *jvgenmain) ;;
320    */libgfortran*.*) echo "$i" >> build/files.gfortran ;;
321    */libstdc++.*) echo "$i" >> build/files.g++ ;;
322    */libsupc++.*) echo "$i" >> build/files.g++ ;;
323    *) echo "$i" >> build/files.gcc ;;
324    esac
325  done
326
327  TGTDIR="%{_exec_prefix}/m32c-rtems4.10/lib"
328  f=`find ${RPM_BUILD_ROOT}${TGTDIR} ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
329  for i in $f; do
330    case $i in
331    *lib*.la) rm ${RPM_BUILD_ROOT}/$i;; # ignore - gcc produces bogus libtool libs
332    *libiberty.a) rm ${RPM_BUILD_ROOT}/$i ;; # ignore - GPL'ed
333# all other files belong to newlib
334    *) echo "$i" >> build/files.newlib ;;
335    esac
336  done
337# Extract %%__os_install_post into os_install_post~
338cat << \EOF > os_install_post~
339%__os_install_post
340EOF
341
342# Generate customized brp-*scripts
343cat os_install_post~ | while read a x y; do
344case $a in
345# Prevent brp-strip* from trying to handle foreign binaries
346*/brp-strip*)
347  b=$(basename $a)
348  sed -e 's,find $RPM_BUILD_ROOT,find $RPM_BUILD_ROOT%_bindir $RPM_BUILD_ROOT%_libexecdir,' $a > $b
349  chmod a+x $b
350  ;;
351# Fix up brp-compress to handle %%_prefix != /usr
352*/brp-compress*)
353  b=$(basename $a)
354  sed -e 's,\./usr/,.%{_prefix}/,g' < $a > $b
355  chmod a+x $b
356  ;;
357esac
358done
359
360sed -e 's,^[ ]*/usr/lib/rpm.*/brp-strip,./brp-strip,' \
361  -e 's,^[ ]*/usr/lib/rpm.*/brp-compress,./brp-compress,' \
362< os_install_post~ > os_install_post
363%define __os_install_post . ./os_install_post
364
365
366cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
367#!/bin/sh
368grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32c-rtems4.10/(lib|include|sys-root)' \
369  | grep -v '^${RPM_BUILD_ROOT}%{gcclib}/m32c-rtems4.10/' | %__find_provides
370EOF
371chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
372%define __find_provides %{_builddir}/%{name}-%{gcc_rpmvers}/find-provides
373
374cat << EOF > %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
375#!/bin/sh
376grep -E -v '^${RPM_BUILD_ROOT}%{_exec_prefix}/m32c-rtems4.10/(lib|include|sys-root)' \
377  | grep -v '^${RPM_BUILD_ROOT}%{gcclib}/m32c-rtems4.10/' | %__find_requires
378EOF
379chmod +x %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
380%define __find_requires %{_builddir}/%{name}-%{gcc_rpmvers}/find-requires
381
382%ifnarch noarch
383# Extract %%__debug_install_post into debug_install_post~
384cat << \EOF > debug_install_post~
385%__debug_install_post
386EOF
387
388# Generate customized debug_install_post script
389cat debug_install_post~ | while read a x y; do
390case $a in
391# Prevent find-debuginfo.sh* from trying to handle foreign binaries
392*/find-debuginfo.sh)
393  b=$(basename $a)
394  sed -e 's,find "$RPM_BUILD_ROOT" !,find "$RPM_BUILD_ROOT"%_bindir "$RPM_BUILD_ROOT"%_libexecdir !,' $a > $b
395  chmod a+x $b
396  ;;
397esac
398done
399
400sed -e 's,^[ ]*/usr/lib/rpm/find-debuginfo.sh,./find-debuginfo.sh,' \
401< debug_install_post~ > debug_install_post
402%define __debug_install_post . ./debug_install_post
403
404%endif
405
406%clean
407  rm -rf $RPM_BUILD_ROOT
408
409# ==============================================================
410# rtems-4.10-m32c-rtems4.10-gcc
411# ==============================================================
412# %package -n rtems-4.10-m32c-rtems4.10-gcc
413# Summary:        GNU cc compiler for m32c-rtems4.10
414# Group:          Development/Tools
415# Version:        %{gcc_rpmvers}
416# Requires:       rtems-4.10-m32c-rtems4.10-binutils
417# Requires:       rtems-4.10-m32c-rtems4.10-newlib = %{newlib_version}-%{release}
418# License:      GPL
419
420# %if %build_infos
421# Requires:      rtems-4.10-gcc-common
422# %endif
423
424%description -n rtems-4.10-m32c-rtems4.10-gcc
425GNU cc compiler for m32c-rtems4.10.
426
427%files -n rtems-4.10-m32c-rtems4.10-gcc -f build/files.gcc
428%defattr(-,root,root)
429%dir %{_mandir}
430%dir %{_mandir}/man1
431%{_mandir}/man1/m32c-rtems4.10-gcc.1*
432%if "%{gcc_version}" >= "3.4"
433%{_mandir}/man1/m32c-rtems4.10-cpp.1*
434%{_mandir}/man1/m32c-rtems4.10-gcov.1*
435%endif
436
437%dir %{_bindir}
438%{_bindir}/m32c-rtems4.10-cpp%{_exeext}
439%{_bindir}/m32c-rtems4.10-gcc%{_exeext}
440%if "%{gcc_version}" >= "3.3"
441%{_bindir}/m32c-rtems4.10-gcc-%{gcc_version}%{_exeext}
442%endif
443%{_bindir}/m32c-rtems4.10-gcov%{_exeext}
444%{_bindir}/m32c-rtems4.10-gccbug
445
446%dir %{gcclib}/m32c-rtems4.10/%{gcc_version}/include
447%if "%{gcc_version}" > "4.0.3"
448%if "m32c-rtems4.10" != "bfin-rtems4.10"
449%if "m32c-rtems4.10" != "avr-rtems4.10"
450%dir %{gcclib}/m32c-rtems4.10/%{gcc_version}/include/ssp
451%endif
452%endif
453%endif
454
455%if "%{gcc_version}" >= "4.3.0"
456%dir %{gcclib}/m32c-rtems4.10/%{gcc_version}/include-fixed
457%endif
458
459%dir %{gccexec}
460%dir %{gccexec}/m32c-rtems4.10
461%dir %{gccexec}/m32c-rtems4.10/%{gcc_version}
462%{gccexec}/m32c-rtems4.10/%{gcc_version}/cc1%{_exeext}
463%{gccexec}/m32c-rtems4.10/%{gcc_version}/collect2%{_exeext}
464
465
466
467
468# ==============================================================
469# rtems-4.10-m32c-rtems4.10-newlib
470# ==============================================================
471%package -n rtems-4.10-m32c-rtems4.10-newlib
472Summary:        C Library (newlib) for m32c-rtems4.10
473Group:          Development/Tools
474License:        Distributable
475Version:        %{newlib_version}
476
477Provides:       rtems-4.10-m32c-rtems4.10-libc = %{newlib_version}-%{release}
478Obsoletes:      rtems-4.10-m32c-rtems4.10-libc < %{newlib_version}-%{release}
479
480
481%description -n rtems-4.10-m32c-rtems4.10-newlib
482Newlib C Library for m32c-rtems4.10.
483
484%files -n rtems-4.10-m32c-rtems4.10-newlib -f build/files.newlib
485%defattr(-,root,root)
486%dir %{_prefix}
487%dir %{_exec_prefix}/m32c-rtems4.10
488%{_exec_prefix}/m32c-rtems4.10/include
489
Note: See TracBrowser for help on using the repository browser.