source: rtems/scripts-ada/gnatnewlib/gnatnewlib.spec.in @ 1e3f463

4.104.114.84.95
Last change on this file since 1e3f463 was 1e3f463, checked in by Joel Sherrill <joel.sherrill@…>, on Sep 13, 2001 at 4:35:55 PM

2001-09-13 Joel Sherrill <joel@…>

  • configure.in: Add RTEMS specific version of EXEEXT test.
  • mkgdbspec.in, mkgnatnewlibspec.in, gdb/gdb.spec.in, gnatnewlib/gnatnewlib.spec.in: Change to Target_alias to avoid conflicts with new autoconf/automake.
  • setup, setup.def, mkgnatnewlibspec.in: Add gnat_newlib_patch_version variable.
  • gnatnewlib/Makefile.am: Add i386-rtemscoff target in attempt to build it.
  • Property mode set to 100644
File size: 13.4 KB
Line 
1#
2# spec file for building gcc for rtems
3#
4# Copyright  (c)  1999  OARCorp, Huntsville, AL
5#
6# please send bugfixes or comments to joel@OARcorp.com
7#
8
9Vendor:       OAR Corporation
10Distribution: Linux
11Name:         @Target_alias@-gnat-newlib
12Summary:      gnat, gcc, and newlib C Library for @Target_alias@.
13Group:        gnatrtems
14Release:      @Release@
15License:      gcc is GPL/LGPL ; newlib no has restrictions on run-time usage
16
17Provides:       rtems-base-gnat @Target_alias@-gnat
18Provides:       rtems-base-gnat-binutils @Target_alias@-gnat-binutils
19# Requires:             @Target_alias@-binutils
20
21Autoreqprov:    on
22Packager:       corsepiu@faw.uni-ulm.de and joel@OARcorp.com
23
24Version:        gnat@gnat_version@
25Source0:        ftp://ftp.gnu.org/pub/gnu/gcc/gcc-@gcc_version@.tar.gz
26Source1:        ftp://sourceware.cygnus/com/pub/newlib/newlib-@newlib_version@.tar.gz
27Source2:        ftp://cs.nyu.edu/pub/gnat/gnat-@gnat_version@-src.tar.gz
28Source3:        ftp://ftp.gnu.org/pub/gnu/binutils/binutils-@binutils_version@.tar.gz
29Patch0:         gcc-@gcc_version@-rtems-gnat-@gnat_version@-@gcc_patch_version@.diff
30Patch1:         newlib-@newlib_version@-rtems-@newlib_patch_version@.diff
31Patch2:         gnat-@gnat_version@-rtems-@gnat_patch_version@.diff
32Patch3:         binutils-@binutils_version@-rtems-gnat-@gnat_version@-@binutils_patch_version@.diff
33Patch4:         newlib-@newlib_version@-rtems-gnat-@gnat_version@-@gnat_newlib_patch_version@.diff
34#
35Buildroot:      /tmp
36
37#
38# The original sources are not included in the source RPM.
39# If we included them, then the source RPMs for each target
40# would duplicate MBs of source unnecessarily.  This is
41# a duplication of over 30 MBs of source for each of
42# the more than 10 targets it is possible to build.
43#
44# You can get them yourself from the Internet and copy them to
45# your /usr/src/redhat/SOURCES directory ($RPM_SOURCE_DIR).
46# Or you can try the ftp options of rpm :-)
47#
48NoSource:       0
49NoSource:       1
50NoSource:       2
51NoSource:       3
52
53%description
54RTEMS is an open source operating system for embedded systems.
55
56This is gcc's and newlib C Library's sources with patches for RTEMS.
57
58 The original sources are not included in the source RPM.
59 If we included them, then the source RPMs for each target
60 would duplicate MBs of source unnecessarily.  This is
61 a duplication of over 30 MBs of source for each of
62 the more than 10 targets it is possible to build.
63
64 You can get them yourself from the Internet and copy them to
65 your /usr/src/redhat/SOURCES directory ($RPM_SOURCE_DIR).
66 Or you can try the ftp options of rpm :-)
67
68This version of GNAT/RTEMS RPMs is based on the following:
69
70  + gnat-@gnat_version@-src
71  + gcc-@gcc_version@
72  + newlib-@newlib_version@
73  + binutils-@binutils_version@
74
75with appropriate patches.
76
77%package -n rtems-base-gnat
78Summary:      base package for rtems gnat, gcc, and newlib C Library
79Group: gnatrtems
80
81%description -n rtems-base-gnat
82
83RTEMS is an open source operating system for embedded systems.
84
85This is the files for gnat, gcc, and newlib that are shared by all targets.
86
87%package -n rtems-base-gnat-binutils
88Summary:      base package for rtems binutils
89Group: gnatrtems
90
91%description -n rtems-base-gnat-binutils
92
93RTEMS is an open source operating system for embedded systems.
94
95This is the base for binutils regardless of target CPU.
96
97%package -n @Target_alias@-gnat-binutils
98Summary:      rtems binutils for @Target_alias@
99Group: gnatrtems
100Requires: rtems-base-gnat-binutils
101
102%description -n @Target_alias@-gnat-binutils
103
104RTEMS is an open source operating system for embedded systems.
105
106This is the GNU binutils for RTEMS targetting @Target_alias@.
107
108%package -n @Target_alias@-gnat
109Summary:      rtems gnat, gcc, and newlib C Library for @Target_alias@
110Group: gnatrtems
111Requires: @Target_alias@-gnat-binutils rtems-base-gnat
112
113%description -n @Target_alias@-gnat
114RTEMS is an open source operating system for embedded systems.
115
116This is gnat, gcc, and newlib C Library for @Target_alias@.
117
118%prep
119# untar the sources inside @Target_alias@-gnat-newlib
120%setup -c -n @Target_alias@-gnat-newlib -a 0 -a 1 -a 2 -a 3
121
122%patch0 -p0
123%patch2 -p0
124%patch3 -p0
125
126# this patch needs to be applied with a -p1
127cd newlib-@newlib_version@
128%patch1 -p1
129%patch4 -p1
130cd ..
131
132  # this 281 needs to be a variable. :(
133  cd gcc-@gcc_version@
134  patch -p0 <../gnat-@gnat_version@-src/src/gcc-281.dif
135 
136  mv ../gnat-@gnat_version@-src/src/ada .
137
138  cd ada
139  touch treeprs.ads a-[es]info.h nmake.ad[bs]
140  cd ../..    # now back at top
141
142  # Now we should be done patching everything.. build up a source tree
143
144  # this sequence is VERY dependent on the versions involved
145  #  When the gcc gets updated to 2.95.x or newer, this HAS to change.
146
147  mkdir src
148  cd src
149  # configure scripts
150  for f in config config.guess config.sub configure configure.in \
151        config-ml.in include install-sh ltconfig ltmain.sh Makefile.in \
152        move-if-change mkinstalldirs libiberty
153  do
154        # some packages have more configure scripts than others
155        # our list is inclusive
156        test -r ../binutils-@binutils_version@/$f && \
157          mv ../binutils-@binutils_version@/$f .
158  done
159
160  # link in gcc
161  mv ../gcc-@gcc_version@ gcc
162 
163  # link in binutils
164  for f in bfd binutils gas gprof ld opcodes etc
165  do
166    mv ../binutils-@binutils_version@/$f .
167  done
168
169  # link in newlib
170  mv ../newlib-@newlib_version@/newlib .
171  cd ..
172
173  # now we have a linked together source tree
174  test -d build || mkdir build
175
176
177%build
178  cd build
179  # after we switch off gcc 2.8.1, configure using gcc not a src directory
180  # and build binutils separately.
181  ../src/configure --target=@Target_alias@ \
182    --with-gnu-as --with-gnu-ld --with-newlib --verbose \
183    --prefix=/opt/gnatrtems
184
185  # for now we are building all the languages
186  #  '--enable-languages=c,c++'
187
188#  #  This is a hack that is only because gnat still uses gcc 2.8.1
189#  test -d ${RPM_BUILD_ROOT}/opt/gnatrtems/@Target_alias@ ||
190#    mkdir -p ${RPM_BUILD_ROOT}/opt/gnatrtems/@Target_alias@
191#  for dir in ${RPM_BUILD_ROOT}/opt/gnatrtems/@Target_alias@/include \
192#             ${RPM_BUILD_ROOT}/opt/gnatrtems/@Target_alias@/sys-include
193#  do
194#    test -d ${dir} || mkdir -p ${dir}
195#    cp ../newlib-@newlib_version@/newlib/libc/sys/rtems/include/limits.h ${dir}
196#  done
197
198  make CC=gcc CFLAGS="-O2" LANGUAGES="c" all
199  make CC=gcc CFLAGS="-O2" LANGUAGES="c" info
200  # must be installed to allow gnat to continue to build
201  make CC=gcc CFLAGS="-O2" LANGUAGES="c" install install-info
202  make prefix=$RPM_BUILD_ROOT/opt/gnatrtems \
203    CC=gcc CFLAGS="-O2" LANGUAGES="c" install install-info
204
205#  When GNAT uses a gcc that finds the RTEMS limits.h, this will not
206#  be needed.  This should not be needed if the limits.h trick above works.
207#   cd gcc
208#   rm -f stmp-multilib
209#   find . -name "*.a" -print | xargs -e rm -f
210#
211#   make all
212#   cd ..
213
214####################     Ada from here down      ###################
215
216    # Just so the log shows what directory we are in.
217    pwd
218    cd gcc
219    echo "Starting build of GNAT proper."
220    make CC=gcc CFLAGS="-O2" LANGUAGES="c ada gcov"
221
222    echo "Starting build of cross GNAT tools"
223    make CC=gcc CFLAGS="-O2 -g" LANGUAGES="c ada gcov" cross-gnattools
224
225    echo "Starting build of ada.all.cross"
226    make CC=gcc CFLAGS="-O2" LANGUAGES="c ada gcov" ada.all.cross
227
228    # must have -gnato to pass validation
229    # may want CC=gcc GNATLIBCFLAGS="-O3" GNATLIBFLAGS="-gnatpgn" gnatliy
230    # NOTE:  gnatlib is not multilib'ed -- serious embedded flaw
231    echo "Starting build of gnatlib"
232    make CC=gcc GNATLIBCFLAGS="-O2 -g" gnatlib
233
234%install
235  cd build
236  # Bug in gcc-2.95.1: It doesn't build this installation directory
237  # If it doesn't find it, gcc doesn't install @Target_alias@/bin/gcc
238  # ../gcc-@gcc_version@/mkinstalldirs \
239  #   $RPM_BUILD_ROOT/opt/gnatrtems/@Target_alias@/bin
240
241  cd gcc
242  echo "Starting install of gnat"
243  make prefix=$RPM_BUILD_ROOT/opt/gnatrtems \
244     CC=gcc CFLAGS="-O2 -g -gnata -gnatp" LANGUAGES="c ada" install
245  # GNAT has to be mostly installed to even build itself
246
247#  hack to get rid of symlinks to dynamic libraries that don't exist
248  find $RPM_BUILD_ROOT/opt/gnatrtems -name "*.so" | xargs -e rm -f
249
250  make prefix=$RPM_BUILD_ROOT/opt/gnatrtems install-info
251
252  # cd go back to build/
253  pwd
254  cd ..
255
256  # gzip info files
257  gzip -f $RPM_BUILD_ROOT/opt/gnatrtems/info/*.info 2>/dev/null
258  gzip -f $RPM_BUILD_ROOT/opt/gnatrtems/info/*.info-? 2>/dev/null
259  gzip -f $RPM_BUILD_ROOT/opt/gnatrtems/info/*.info-?? 2>/dev/null
260
261  rm -f dirs ;
262  echo "%dir /opt/gnatrtems/lib" >> dirs ;
263  echo "%dir /opt/gnatrtems/lib/gcc-lib" >> dirs ;
264  echo "%dir /opt/gnatrtems/lib/gcc-lib/@Target_alias@" >> dirs ;
265
266  touch ../files
267  # if test -f $RPM_BUILD_ROOT/opt/gnatrtems/info/configure.info.gz;
268  # then
269# These common files are only present in binutils >= 2.9.5
270  #   find $RPM_BUILD_ROOT/opt/gnatrtems/info -name 'configure.*' | \
271  #     sed -e "s,^$RPM_BUILD_ROOT,,g" > ../files
272  # else
273  #   touch ../files
274  # fi
275# These target specific files are only present in binutils >= 2.9.5
276  if test -f /opt/gnatrtems/bin/@Target_alias@-readelf@exe_ext@;
277  then
278    echo /opt/gnatrtems/bin/@Target_alias@-readelf@exe_ext@ > ../files.target
279  else
280    touch ../files.target
281  fi
282
283  # Collect multilib subdirectories
284  TGTDIR="$RPM_BUILD_ROOT/opt/gnatrtems/lib/gcc-lib/@Target_alias@/@gcc_version@"
285  find $TGTDIR \
286    \( -type d -a ! -path "$TGTDIR/include*" \) -print | \
287    sed -e "s,^$RPM_BUILD_ROOT,%dir ,g" >> dirs
288
289  # Collect files to go into different packages
290  # NOTE: This is left in as a place holder to move the 2.95.x code into.
291  cp dirs ../files.gcc
292
293  f=`find $TGTDIR ! -type d -print | sed -e "s,^$RPM_BUILD_ROOT,,g"`;
294  for i in $f; do
295    case $i in
296    *) echo "$i" >> ../files.gcc ;;
297    esac
298  done
299
300%files -n rtems-base-gnat-binutils -f files
301%dir /opt/gnatrtems/info
302# %doc /opt/gnatrtems/info/dir
303# %doc /opt/gnatrtems/info/as.info.gz
304# %doc /opt/gnatrtems/info/as.info-?.gz
305# %doc /opt/gnatrtems/info/bfd.info.gz
306# %doc /opt/gnatrtems/info/bfd.info-?.gz
307# %doc /opt/gnatrtems/info/binutils.info.gz
308# %doc /opt/gnatrtems/info/binutils.info-?.gz
309# %doc /opt/gnatrtems/info/ld.info.gz
310# %doc /opt/gnatrtems/info/ld.info-?.gz
311# %doc /opt/gnatrtems/info/gasp.info.gz
312# %doc /opt/gnatrtems/info/standards.info.gz
313
314%dir /opt/gnatrtems/man
315%dir /opt/gnatrtems/man/man1
316
317%dir /opt/gnatrtems/include
318/opt/gnatrtems/include/bfd.h
319/opt/gnatrtems/include/ansidecl.h
320/opt/gnatrtems/include/bfdlink.h
321
322%dir /opt/gnatrtems/lib
323/opt/gnatrtems/lib/libbfd*
324/opt/gnatrtems/lib/libiberty*
325/opt/gnatrtems/lib/libopcodes*
326
327# %dir /opt/gnatrtems/share
328# %dir /opt/gnatrtems/share/locale
329
330%files -n @Target_alias@-gnat-binutils -f files.target
331%doc /opt/gnatrtems/man/man1/@Target_alias@-*.1
332
333%dir /opt/gnatrtems/bin
334/opt/gnatrtems/bin/@Target_alias@-addr2line@exe_ext@
335/opt/gnatrtems/bin/@Target_alias@-ar@exe_ext@
336/opt/gnatrtems/bin/@Target_alias@-as@exe_ext@
337/opt/gnatrtems/bin/@Target_alias@-c++filt@exe_ext@
338/opt/gnatrtems/bin/@Target_alias@-gasp@exe_ext@
339/opt/gnatrtems/bin/@Target_alias@-ld@exe_ext@
340/opt/gnatrtems/bin/@Target_alias@-nm@exe_ext@
341/opt/gnatrtems/bin/@Target_alias@-objcopy@exe_ext@
342/opt/gnatrtems/bin/@Target_alias@-objdump@exe_ext@
343/opt/gnatrtems/bin/@Target_alias@-ranlib@exe_ext@
344# readelf is not in older binutils so get it from file list
345# /opt/gnatrtems/bin/@Target_alias@-readelf@exe_ext@
346/opt/gnatrtems/bin/@Target_alias@-size@exe_ext@
347/opt/gnatrtems/bin/@Target_alias@-strings@exe_ext@
348/opt/gnatrtems/bin/@Target_alias@-strip@exe_ext@
349
350%dir /opt/gnatrtems/@Target_alias@
351%dir /opt/gnatrtems/@Target_alias@/bin
352/opt/gnatrtems/@Target_alias@/bin/ar@exe_ext@
353/opt/gnatrtems/@Target_alias@/bin/as@exe_ext@
354/opt/gnatrtems/@Target_alias@/bin/ld@exe_ext@
355/opt/gnatrtems/@Target_alias@/bin/nm@exe_ext@
356/opt/gnatrtems/@Target_alias@/bin/ranlib@exe_ext@
357/opt/gnatrtems/@Target_alias@/bin/strip@exe_ext@
358
359%dir /opt/gnatrtems/@Target_alias@/lib
360/opt/gnatrtems/@Target_alias@/lib/ldscripts
361%files -n rtems-base-gnat
362%dir /opt/gnatrtems/info
363# %doc /opt/gnatrtems/info/dir
364%doc /opt/gnatrtems/info/cpp.info*
365%doc /opt/gnatrtems/info/gcc.info*
366%doc /opt/gnatrtems/info/libc.info*
367%doc /opt/gnatrtems/info/libm.info*
368
369# %dir /opt/gnatrtems/man
370# %dir /opt/gnatrtems/man/man1
371%doc /opt/gnatrtems/man/man1/cccp.1
372%doc /opt/gnatrtems/man/man1/@Target_alias@-gcc.1
373
374%dir /opt/gnatrtems/bin
375# /opt/gnatrtems/bin/cpp@exe_ext@
376# /opt/gnatrtems/bin/gcov@exe_ext@
377%dir /opt/gnatrtems/include
378# /opt/gnatrtems/include/g++-3
379
380%files -n @Target_alias@-gnat -f files.gcc
381/opt/gnatrtems/bin/@Target_alias@-gcc@exe_ext@
382/opt/gnatrtems/bin/@Target_alias@-gnatbind
383/opt/gnatrtems/bin/@Target_alias@-gnatbl
384/opt/gnatrtems/bin/@Target_alias@-gnatchop
385/opt/gnatrtems/bin/@Target_alias@-gnatfind
386/opt/gnatrtems/bin/@Target_alias@-gnatkr
387/opt/gnatrtems/bin/@Target_alias@-gnatlink
388/opt/gnatrtems/bin/@Target_alias@-gnatls
389/opt/gnatrtems/bin/@Target_alias@-gnatmake
390/opt/gnatrtems/bin/@Target_alias@-gnatmem
391/opt/gnatrtems/bin/@Target_alias@-gnatprep
392/opt/gnatrtems/bin/@Target_alias@-gnatpsta
393/opt/gnatrtems/bin/@Target_alias@-gnatpsys
394/opt/gnatrtems/bin/@Target_alias@-gnatxref
395
396
397%dir /opt/gnatrtems/lib/gcc-lib/@Target_alias@/@gcc_version@/include
398
399/opt/gnatrtems/@Target_alias@
400
401%post -n @Target_alias@-gnat
402  if test -d $RPM_INSTALL_PREFIX/rtems/info;
403  then
404    rm -f $RPM_INSTALL_PREFIX/rtems/info/dir
405    f=`find $RPM_INSTALL_PREFIX/rtems/info -name '*.info.gz'`
406    test -n "$f" && for i in $f; do
407      install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
408    done
409  fi
410
411%postun -n @Target_alias@-gnat
412  if test -d $RPM_INSTALL_PREFIX/rtems/info;
413  then
414    rm -f $RPM_INSTALL_PREFIX/rtems/info/dir
415    f=`find $RPM_INSTALL_PREFIX/rtems/info -name '*.info.gz'`
416    test -n "$f" && for i in $f; do
417      install-info $i $RPM_INSTALL_PREFIX/rtems/info/dir
418    done
419  fi
420
Note: See TracBrowser for help on using the repository browser.