summaryrefslogtreecommitdiffstats
path: root/scripts/gdb/gdb.add
blob: 688164e3f83324b38edcf5a3f7d43de940b085d5 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152

%define gdb_version	@gdb_version@
%define gdb_target	@target_alias@

Name:         %{rpmprefix}%{gdb_target}-gdb
Release:      @Release@
License:      GPL/LGPL
Group:        %{rpmgroup}

Version:      %{gdb_version}
Summary:      gdb for target %{gdb_version}

%if "%{gdb_version}" < "6.0"
Source0:      ftp://ftp.gnu.org/pub/gnu/gdb-%{gdb_version}@gdb_suffix@
Patch0:	      gdb-%{gdb_version}-rtems-base-@gdb_patch_version@.diff
Patch1:	      gdb-%{gdb_version}-rtems-cg-@gdb_patch_version@.diff
Patch2:	      gdb-%{gdb_version}-rtems-rdbg-@gdb_patch_version@.diff
%else
Source0:      ftp://ftp.gnu.org/pub/gnu/gdb-%{gdb_version}@gdb_suffix@
@PATCH1@
%endif

%if "%{_vendor}" == "redhat"
BuildRequires:	ncurses-devel
%endif

#
# The original sources are not included in the source RPM.
# If we included them, then the source RPMs for each target
# would duplicate MBs of source unnecessarily.  This is 
# a duplication of over 30 MBs of source for each of
# the more than 10 targets it is possible to build.
#
# You can get them yourself from the Internet and copy them to
# your /usr/src/redhat/SOURCES directory ($RPM_SOURCE_DIR).
# Or you can try the ftp options of rpm :-)
#
%{?!_with_sources:NoSource:      0}

#  Account as best possible for targets without simulators
#  and targets which require extra arguments.
%define _sim	1

%if "%{gdb_target}" == "avr-rtems@osversion@"
%define _sim	0
%endif
%if "%{gdb_target}" == "m68k-rtems@osversion@"
%define _sim	0
%endif
%if "%{gdb_target}" == "i386-rtems@osversion@"
%define _sim	0
%endif
%if "%{gdb_target}" == "powerpc-rtems@osversion@"
%define _sim	1
%endif
%if "%{gdb_target}" == "sparc-rtems@osversion@"
%define _sim	1
%endif


%description
RTEMS is an open source operating system for embedded systems.

This is the GNU gdb for RTEMS targetting %{gdb_version}.

%prep
%setup -c -T -n %{name}-%{version} -a0

cd gdb-%{gdb_version}
%{?PATCH0:%patch0 -p1}
%{?PATCH1:%patch1 -p1}
%{?PATCH2:%patch2 -p1}
cd ..

%build
%if "%_sim" == "1"
 simargs="--enable-sim"
%endif

%if "%{gdb_target}" == "powerpc-rtems@osversion@"
 simargs="$simargs --enable-sim-timebase --enable-sim-hardware"
 #  Enabling this causes the program image to be huge and causes
 #  some gcc/hosts combinations to run out of memory.
 # simargs="$simargs --enable-sim-inline"
%endif

  mkdir -p build
  cd build
  export PATH="%{_bindir}:${PATH}"
  CFLAGS="$RPM_OPT_FLAGS" \
  ../gdb-%{gdb_version}/configure \
    --build=%_build --host=%_host \
    --target=%{gdb_target} \
    --prefix=%{_prefix} --bindir=%{_bindir} \
    --includedir=%{_includedir} --libdir=%{_libdir} \
    --mandir=%{_mandir} --infodir=%{_infodir} \
    --verbose $simargs \
    --disable-nls

  make all
  make info

%install
  rm -rf $RPM_BUILD_ROOT

  cd build
%if "%{gdb_version}" >= "6.3"
  make DESTDIR=$RPM_BUILD_ROOT install
  make DESTDIR=$RPM_BUILD_ROOT install-info
%%else
  make prefix=$RPM_BUILD_ROOT%{_prefix} \
    bindir=$RPM_BUILD_ROOT%{_bindir} \
    includedir=$RPM_BUILD_ROOT%{_includedir} \
    libdir=$RPM_BUILD_ROOT%{_libdir} \
    infodir=$RPM_BUILD_ROOT%{_infodir} \
    mandir=$RPM_BUILD_ROOT%{_mandir} \
    install
  make prefix=$RPM_BUILD_ROOT%{_prefix} \
    bindir=$RPM_BUILD_ROOT%{_bindir} \
    includedir=$RPM_BUILD_ROOT%{_includedir} \
    libdir=$RPM_BUILD_ROOT%{_libdir} \
    infodir=$RPM_BUILD_ROOT%{_infodir} \
    mandir=$RPM_BUILD_ROOT%{_mandir} \
    install-info
%endif

  # host files
  rm -rf $RPM_BUILD_ROOT%{_includedir}/*.h
  rm -rf $RPM_BUILD_ROOT%{_libdir}/lib*a

  # These come from other packages
  rm -rf $RPM_BUILD_ROOT%{_infodir}/bfd*
  rm -rf $RPM_BUILD_ROOT%{_infodir}/configure*
  rm -rf $RPM_BUILD_ROOT%{_infodir}/standards*

  # gdb 4.18 installed this, later versions don't
  # Don't care about it, anymore
  rm -rf $RPM_BUILD_ROOT%{_infodir}/readline.info*

  rm -f $RPM_BUILD_ROOT%{_infodir}/dir
  touch $RPM_BUILD_ROOT%{_infodir}/dir
 
  # gzip info files
  ls $RPM_BUILD_ROOT%{_infodir}/*.info \
    $RPM_BUILD_ROOT%{_infodir}/*.info-? \
    $RPM_BUILD_ROOT%{_infodir}/*.info-?? \
  | while read a; do \
    gzip -9qf $a 2>/dev/null; \
  done

  # gzip man pages
  gzip -9qf $RPM_BUILD_ROOT%{_mandir}/man?/*.? 2>/dev/null