Name: sdcc
Version: 2.9.0
Release: 7%{?dist}
Summary: Small Device C Compiler
Group: Applications/Engineering
License: GPLv2+
URL: http://sdcc.sourceforge.net/
Source0: http://downloads.sourceforge.net/sdcc/sdcc-src-%{version}.tar.bz2
Source1: README.fedora
Patch0: sdcc-2.9.0-patch-out-getline.diff
Patch1: sdcc-2.9.0-configure.diff
Patch2: sdcc-2.9.0-r5476-fix-doublefree.diff
Patch3: sdcc-2.9.0-r5508-fix-bug2805333.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildRequires: autoconf
BuildRequires: bison
BuildRequires: flex
BuildRequires: gc-devel
BuilDrequires: gputils
BuildRequires: lyx
BuildRequires: latex2html
%description
SDCC is a C compiler for 8051 class and similar microcontrollers.
The package includes the compiler, assemblers and linkers, a device
simulator and a core library. The processors supported (to a varying
degree) include the 8051, ds390, z80, hc08, and PIC.
%package libc-sources
Summary: Small Device C Compiler
Group: Applications/Engineering
License: GPLv2+
Requires: sdcc = %{version}-%{release}
%description libc-sources
SDCC is a C compiler for 8051 class and similar microcontrollers.
This package includes the sources for the C library, and is only necessary
if you want to modify the C library or as reference of how it works.
%package -n emacs-sdcc
Summary: Emacs extensions for SDCC
Group: Applications/Editors
License: GPLv2+
Requires: sdcc = %{version}-%{release}
Requires: emacs(bin)
%description -n emacs-sdcc
Emacs extensions for SDCC.
%prep
%setup -q -n sdcc
%patch0 -p1
%patch1 -p1
%patch2 -p2
%patch3 -p1
find -name '*.[ch]' -exec chmod -x '{}' \;
# Disable brp-strip-static-archive for now because it errors trying to
# strip foreign binaries.
%global __os_install_post %(echo '%{__os_install_post}' | sed -e 's#/usr/lib/rpm/redhat/brp-strip-static-archive .*##g')
%build
# Rebuild configure scripts (patched configure.in s in patch0).
autoconf
cd debugger/mcs51 ; autoconf ; cd ../..
cd sim/ucsim ; autoconf ; cd ../..
%configure --enable-doc --enable-libgc STRIP=:
make Q=
%install
rm -rf $RPM_BUILD_ROOT
make install DESTDIR=$RPM_BUILD_ROOT Q=
mv $RPM_BUILD_ROOT%{_datadir}/doc installed-docs
install -m 644 %SOURCE1 installed-docs
mkdir -p $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
mv $RPM_BUILD_ROOT%{_bindir}/*.el $RPM_BUILD_ROOT%{_datadir}/emacs/site-lisp
find $RPM_BUILD_ROOT -type f -name \*.c -exec chmod a-x '{}' \;
mkdir -p $RPM_BUILD_ROOT%{_libexecdir}/sdcc
mv $RPM_BUILD_ROOT%{_bindir}/* $RPM_BUILD_ROOT%{_libexecdir}/sdcc
# Create launch scripts in %{_bindir}
pushd $RPM_BUILD_ROOT%{_bindir}
for x in ../libexec/sdcc/*; do
echo "#!/bin/sh
PATH=/usr/libexec/sdcc:\$PATH
/usr/libexec/%{name}/$(basename $x) \"\$@\"" > %{name}-$(basename $x)
chmod 755 %{name}-$(basename $x)
done
popd
pushd $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/src/pic16
find . -type f -name '*.a' -exec chmod 664 '{}' \;
popd
%clean
rm -rf $RPM_BUILD_ROOT
%files
%defattr(-,root,root,-)
%doc installed-docs/*
%{_bindir}/*
%{_libexecdir}/%{name}
%{_datadir}/%{name}
%exclude %{_datadir}/%{name}/lib/src
%files libc-sources
%defattr(-,root,root,-)
%{_datadir}/%{name}/lib/src
%files -n emacs-sdcc
%defattr(-,root,root,-)
%{_datadir}/emacs/site-lisp/*.el
%changelog
* Sun Dec 6 2009 Conrad Meyer <konrad@tylerc.org> - 2.9.0-7
- Only disable brp-strip-static.
* Sun Dec 6 2009 Conrad Meyer <konrad@tylerc.org> - 2.9.0-6
- Work around rpmbuild failure by disabling brp-strip.
* Fri Sep 11 2009 Conrad Meyer <konrad@tylerc.org> - 2.9.0-5
- Fix a bug with single-bit types, logical NOT, and casting to char
(I'm fuzzy on the details) that was reported by a Fedora user with the
r5508 patch from upstream.
* Sun Jul 26 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.9.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild
* Mon Jul 20 2009 Conrad Meyer <konrad@tylerc.org> - 2.9.0-3
- Fix double-free (rhbz# 509278) with patch from upstream.
* Wed Jul 1 2009 Conrad Meyer <konrad@tylerc.org> - 2.9.0-2
- Fix #454205 by BR'ing gputils and re-adding install_post hack.
* Thu Apr 30 2009 Conrad Meyer <konrad@tylerc.org> - 2.9.0-1
- Bump to 2.9.0.
* Thu Feb 26 2009 Conrad Meyer <konrad@tylerc.org> - 2.8.0-5
- Make subpackages noarch.
* Wed Feb 25 2009 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 2.8.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild
* Thu Nov 13 2008 Conrad Meyer <konrad@tylerc.org> - 2.8.0-3
- Separate out emacs-sdcc subpackage.
* Thu Oct 16 2008 José Matos <jamatos@fc.up.pt> - 2.8.0-2
- use lyx to generate the pdf documentation and ignore its warnings (for now)
* Tue Sep 9 2008 Conrad Meyer <konrad@tylerc.org> - 2.8.0-1
- Bump to 2.8.0.
- Patch configure to not mess up CFLAGS.
- Patch debugger Makefile to not break canonicalized paths.
* Thu Sep 4 2008 Tom "spot" Callaway <tcallawa@redhat.com> - 2.6.0-13
- fix license tag
* Sun Mar 2 2008 Marek Mahut <mmahut@fedoraproject.org> - 2.6.0-12
- Fixing build problems under GCC 4.3
* Wed Feb 20 2008 Fedora Release Engineering <rel-eng@fedoraproject.org> - 2.6.0-11
- Autorebuild for GCC 4.3
* Sat Apr 07 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-10
- Added patch to fix a problem with sdccman.lyx that caused lyx to fail.
* Fri Mar 23 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-9
- Removed symlinks, added scripts (solves bug #233385).
* Thu Feb 29 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-8
- Added Fedora specific README file.
- Corrected permissions on files in debuginfo package.
* Wed Feb 28 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-7
- Updated requirement for libc-source to include version and release number.
* Wed Feb 28 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-6
- Renamed source code package to libc-sources.
- Change BuildRequire from byacc to bison.
- Added "Require: sdcc" to libc-sources package.
- Empty %doc entry removed.
- Updated description of libc-sources package.
* Tue Feb 27 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-5
- Source URL updated.
- Separate src package created.
- Disabling stripping of binaries to get proper debuginfo package.
* Mon Feb 26 2007 Ralf Corsépius <rc040203@freenet.de> - 2.6.0-4
- Add sdcc-2.6.0-configure.diff.
- Pass Q= to make to make building verbose.
- Add __os_install_post post-hacks to prevent brp-strip from processing
foreign binaries.
* Mon Feb 26 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-3
- Broken symlinks fixed.
* Mon Feb 5 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-2
- Emacs scripts moved to the correct folder.
- Moved binaries to /urs/libexec/sdcc, added symlinks with sdcc- prefix in /usr/bin.
- Various rpmlint errors fixed.
* Thu Feb 1 2007 Trond Danielsen <trond.danielsen@gmail.com> - 2.6.0-1
- Initial version.