source: rtems/contrib/crossrpms/rtems4.9/h8300/rtems-4.9-h8300-rtems4.9-gcc.spec @ eca11fcd

4.104.114.95
Last change on this file since eca11fcd was 211c22eb, checked in by Ralf Corsepius <ralf.corsepius@…>, on 03/14/08 at 15:34:59

Regenerate.

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