avr-libc/avr-libc.spec
Richard Biener f9b7d3abfa Accepting request 556412 from CrossToolchain:avr
- build with cross-avr-gcc7-bootstrap (bsc#1072028)
- build with cross-avr-gcc7
- symlink /opt/cross/avr/bin to /usr/avr/bin to make gcc use
  avr-as instead of as.
- update to 2.0.0
- remove old gcc-4.7 spec file
- fix prefix
- update some self tests to v2.0 tree structure
- Update to version 1.8.1.
- Drop patches:
  * 41-avr-libc-1.7.1-xmega32X1.patch: introduces just empty header
  * 42-avr-libc-1.7.1-xmega128b1.patch: now upstreamed
- Add PDF doc.
- Add GPG keys.
- Clean spec file.
- add hack to add -pipe to avr-gcc calls
  this avoids changing temporary filenames embedded in binaries and
  thus continous republishing due to changed binaries
- update to 1.8.0, bugfix release, including:
  PSTR() now has const, to be compatible with gcc-4.7.0
  savannah32698-power.patch upstreamed, removed.
- updated logicp to 1.02 to heal poisoned 
  SIG_UART_RECV ==> UART_RX_vect and friends.
- added avr-libc-gcc47.spec to build with the new compiler.
- Make the dependency on cross-avr-binutils unversioned.
- testcase for tn4313 added, non-fatal. Still fails due to missing gcc binutils support
- added savannah32698-power.patch
- update to 1.7.1
  This is primarily a bugfix release, and particularly, it fixes the infamous
  delay.h bug that caused the delay algorithm to be way off
  (https://savannah.nongnu.org/bugs/?30363).
- fixed bnc#233520
- update to 1.7.0
  * New architecture: avrtiny10
  * New devices: atmega3000, attiny84a, atmega325a, atmega3250a,
    atmega329a, atmega3290a, attiny4, attiny5, attiny9, attiny10,
    attiny20, attiny40, ATxmega128A1U, ATxmega64A1U
  * countless bugfixes and other improvements
- moved avr-example sub package into an own package.
  logicp remains here as a pre-install self-test.
- do not require cross-acr-gcc44, we have removed the version number from the package.
- update to 1.6.8
  * Added iox128a1u.h iom16hva2.h iom16hvb.h iom169pa.h iom649p.h iom64hve.h
    iotn261a.h iotn461a.h iotn861a.h iom324pa.h iotn10.h iotn4.h iotn5.h iotn9.h
    iom16a.h iom88pa.h iom644pa.h iotn24a.h iotn44a.h iotn2313a.h iotn4313.h
    iom8u2.h iom16u2.h iom32u2.h iox192d3.h
  * Add support for new devices: ATmega16HVA2, ATmega16HVB, ATmega48A,
    ATmega88A, ATmega168A, ATmega328, ATmega164A, ATmega324A, ATmega644A,
    ATmega165A, ATmega169A, ATmega645A, ATmega6450A, ATmega649A,
    ATmega6490A, ATmega6490P, ATmega645P, ATmega6450P, ATmega329PA.
    ATtiny2313A, ATtiny4313, ATtiny24A, ATtiny44A, ATmega644PA, ATmega88PA,
    ATmega16A, ATtiny261A, ATtiny861A, ATtiny461A, ATmega64HVE, ATmega169PA,
    ATmega649P, ATmega324PA.  ATmega8U2, ATmega16U2, and ATmega32U2.
    ATxmega192D3.
  * Add new functions: strtok_P() and strtok_rP(). memccpy_P().
  * Fix some tests to run with host computer.
  * several bugfixes.
- updated avr_isp.pl to 0.9h, 
  this now better handles a lrger range of dongles.
- moved /usr/share/doc/avr-libc to /usr/share/doc/packages/avr-libc .
- populated /usr/bin/avr* symlinks, adding /opt/cross/bin to PATH no longer needed.
- added an 00_index.html to the user_manual.
- rediffed patch to remove fuzz.
  pampered rpmlint warnings.
- updated avr_common.mk to no longer rename dir if under svn
- update to 1.6.7, 
  new devices  xmega192D3,mega8U2,mega16U2,ATmega32U2.
  various bugfixes. see
  http://cvs.savannah.gnu.org/viewvc/*checkout*/avr-libc/avr-libc/ChangeLog
- updated avr_isp.pl to survive (unsigned char) casts, 
  and give better diagnostics in case something else fails.
- added a symlink so that html doku finds its examples.
- updated to 1.6.6
  Too many small changes to list here. See
  http://cvs.savannah.gnu.org/viewvc/*checkout*/avr-libc/avr-libc/ChangeLog
- update to 1.6.1
  * The fplib/math library is completely rewritten.
  * Functions of numbers to ascii conversion are completely rewritten.
  * Test suite is added to the Avr-libc project.
  * A few new util's headers: util/atomic.h, util/setbaud.h.
  * Many new devices added, many revised.
- update to 1.4.6
  o Exclude 64-bit types for -mint8 (obsoletes no64bit_int.patch)
  o varios bugfixes (upstream #18115, #18385, #18509, #18662,
    #18686, #18688, #18726, #18899, #18903, #18915, #19009, #19050,
    #19060, #19134, #19135, #19280, #19281, #19445, #19495, #19650,
    #19666 #19841)
  o new devices: AT90USB82, AT90USB162, ATmega325P, ATmega3250P,
    ATmega329P, ATmega3290P, AT90PWM1, ATmega8HVA, ATmega16HVA
  o The "largedemo" has been ported to the ATtiny2313.
  o Integrate a copy of the license file into the documentation.
  o Include an alphabetical index of all globals
  o Added 'avr25' architecture.
  o new functions (memchr_P, memcmp_P, memmem, memmem_P, memrchr,
    memrchr_P, strcasestr, strcasestr_P, strchrnul, strchrnul_P,
    strchr_P, strcspn, strcspn_P, strpbrk, strpbrk_P, strrchr_P,
    strsep_P, strspn, strspn_P)
  o Optimized functions (atoi, atol, strchr, strcmp, strcmp_P,
    strlwr, strrev, strsep, strstr, strstr_P, strupr)
- gzipped manpages to make rpmlint happy.
  user-manual moved *into* /usr/share/doc/packages/avr-libc.
- 64bit datatypes on 64bit hosts only fail with -mint8
  Now properly ifdefed.
- update to 1.4.5
  ATmega165P/169P support. Fixes to the HD44780 driver.
  Power Management API. New "asmdemo" example.
  sleep.h: Fix the entry for the ATtiny2313.
  new devices: ATmega2560, ATmega2561.
  fp_split.S: Pop 3 bytes for avr6
  Bugs fixed: 15512 16125 16411 16434 16441 
        16868 17068 17470 17551 17591 17608 
- make test now tests 3 CPUs
- compiling and linking my logicp application 
  as a simple selftest.
- avr-64bit datatypes fail on 64bit hosts.
- update to 1.4.4
  added /opt/cross/share/man/man3/* and /opt/cross/share/doc symlink
- converted neededforbuild to BuildRequires
- update to 1.4.2
- upstreamed patches removed.
- update to 1.4.0
 - add norootforbuild
- update to 1.2.5, fixes many things for atmega48
  e.g. [#105226].
- removed dependency on uisp.
- initial version: avr-libc-1.2.3

OBS-URL: https://build.opensuse.org/request/show/556412
OBS-URL: https://build.opensuse.org/package/show/devel:gcc/avr-libc?expand=0&rev=1
2017-12-12 12:29:59 +00:00

127 lines
5.1 KiB
RPMSpec

#
# spec file for package avr-libc
#
# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany.
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
# upon. The license for this file, and modifications and additions to the
# file, is the same license as for the pristine package itself (unless the
# license for the pristine package is not an Open Source License, in which
# case the license is the MIT License). An "Open Source License" is a
# license that conforms to the Open Source Definition (Version 1.9)
# published by the Open Source Initiative.
# Please submit bugfixes or comments via http://bugs.opensuse.org/
#
%define into_usr_avr 1
%define doc_vers %{version}
%if %{into_usr_avr}
%define PREFIX /usr/avr
%else
# FIXME:
# okay, FHS 2.2, if you forbid the obvious choices, can you also suggest a better place?
# avr-libc: "/usr/avr/{include,lib,...}" is not allowed anymore in FHS 2.2
# avr-libc: "/usr/local/avr/{include,lib,...}" is not allowed anymore in FHS 2.2
%define PREFIX %{_prefix}
%define PREFIX %{_prefix}/local
%endif
Name: avr-libc
Version: 2.0.0
Release: 0
Summary: The C Runtime Library for AVR Microcontrollers
License: BSD-3-Clause
Group: Development/Libraries/C and C++
Url: http://savannah.nongnu.org/projects/avr-libc
Source: http://savannah.nongnu.org/download/%{name}/%{name}-%{version}.tar.bz2
Source1: http://savannah.nongnu.org/download/%{name}/%{name}-%{version}.tar.bz2.sig
Source2: http://savannah.nongnu.org/download/%{name}/%{name}-manpages-%{doc_vers}.tar.bz2
Source3: http://savannah.nongnu.org/download/%{name}/%{name}-manpages-%{doc_vers}.tar.bz2.sig
Source4: http://savannah.nongnu.org/download/%{name}/%{name}-user-manual-%{doc_vers}.tar.bz2
Source5: http://savannah.nongnu.org/download/%{name}/%{name}-user-manual-%{doc_vers}.tar.bz2.sig
Source6: http://savannah.nongnu.org/download/%{name}/%{name}-user-manual-%{doc_vers}.pdf.bz2
Source7: http://savannah.nongnu.org/download/%{name}/%{name}-user-manual-%{doc_vers}.pdf.bz2.sig
Source8: %{name}.keyring
Source9: logicp-1.02.tgz
Source100: %{name}-rpmlintrc
BuildRequires: cross-avr-binutils
BuildRequires: cross-avr-gcc7-bootstrap
BuildRequires: doxygen
BuildRequires: fdupes
BuildRequires: findutils
BuildRequires: netpbm
Requires: cross-avr-binutils
Requires: cross-avr-gcc7
Recommends: avr-example
BuildRoot: %{_tmppath}/%{name}-%{version}-build
# does not depend on host arch. bnc#233520
BuildArch: noarch
%if 0%{?suse_version} < 1100
BuildRequires: libgmp3
BuildRequires: libmpfr1
%endif
%description
The C runtime library for the AVR family of microcontrollers for use
with the GNU toolset (cross-avr-binutils, cross-avr-gcc, uisp, etc.).
%prep
%setup -q -a2 -a4 -b9
cp -a %{SOURCE6} .
bunzip2 %{name}-user-manual-%{doc_vers}.pdf.bz2
%build
export CFLAGS="%{optflags}"
export CXXFLAGS="%{optflags}"
./configure --prefix=%{PREFIX} --host=avr
make %{?_smp_mflags} CC="avr-gcc -pipe" CCAS="avr-gcc -pipe"
%install
make DESTDIR=%{buildroot} install %{?_smp_mflags}
mkdir -p %{buildroot}%{_docdir}/%{name}
cp -pr AUTHORS ChangeLog* LICENSE NEWS README *.pdf %{buildroot}%{_docdir}/%{name}
cp -pr %{name}-user-manual-%{doc_vers} %{buildroot}%{_docdir}/%{name}/user-manual-%{doc_vers}
ln -s %{_docdir}/%{name}/user-manual-%{doc_vers} %{buildroot}/%{PREFIX}/share/doc/%{name}-%{version}/user-manual
ln -s %{PREFIX}/share/doc/%{name}-%{version}/examples %{buildroot}%{_docdir}/%{name}
cat >> %{buildroot}%{_docdir}/%{name}/user-manual.html <<EOF
<head><meta http-equiv="Refresh" content="0; user-manual-%{doc_vers}/index.html"></head>
<a href="user-manual-%{doc_vers}/pages.html">user-manual-%{doc_vers}/index.html</a>
EOF
mkdir -p %{buildroot}/%{PREFIX}/avr
cp -pr man %{buildroot}/%{PREFIX}/avr/.
# do not run brp-strip-debug on our avr-elf objects.
export NO_BRP_STRIP_DEBUG=true
%fdupes %{buildroot}
%check
### selftest ###
cd ../logicp*
## how do we tell the linker that crt*.o is at a nonstandard location?
ln -s $RPM_BUILD_ROOT%PREFIX/avr/lib/crtatt*.o .
ln -s $RPM_BUILD_ROOT%PREFIX/avr/lib/avrtiny/crtatt*.o .
ln -s $RPM_BUILD_ROOT%PREFIX/avr/lib/avr?/crtatm*.o .
make test CFLAGS="-Wall -g -Os -mint8 -I$RPM_BUILD_ROOT%PREFIX/avr/include/ -L$RPM_BUILD_ROOT%PREFIX/avr/lib/avr4" CPU=mega8 || true
make test CFLAGS="-Wall -g -Os -mint8 -I$RPM_BUILD_ROOT%PREFIX/avr/include/ -L$RPM_BUILD_ROOT%PREFIX/avr/lib/avr4" CPU=mega48 || true
make test CFLAGS="-Wall -g -Os -mint8 -I$RPM_BUILD_ROOT%PREFIX/avr/include/ -L$RPM_BUILD_ROOT%PREFIX/avr/lib/avr4" CPU=mega644 || true
make test CFLAGS="-Wall -g -Os -mint8 -I$RPM_BUILD_ROOT%PREFIX/avr/include/ -L$RPM_BUILD_ROOT%PREFIX/avr/lib" CPU=tiny2313 || true
make test CFLAGS="-Wall -g -Os -mint8 -I$RPM_BUILD_ROOT%PREFIX/avr/include/ -L$RPM_BUILD_ROOT%PREFIX/avr/lib" CPU=tiny4313 || true
%files
%defattr (-, root, root)
%doc %{_docdir}/%{name}
%if %{into_usr_avr}
%dir /usr/avr
/usr/avr/*
%else
%{_prefix}/*
%endif
# %%doc /usr/share/man/man?/*.*
%changelog