diff options
author | Maximilian Güntner <code@sourcediver.org> | 2017-09-05 04:42:26 +0200 |
---|---|---|
committer | Maximilian Güntner <code@sourcediver.org> | 2017-09-05 05:31:38 +0200 |
commit | 6a458c169b86725b6d0b21918bee4526a9289c2f (patch) | |
tree | f9c46cc294e8b1c2f3f76a1e2fea4b7e5f7bfe40 /pkgs/development/misc/avr | |
parent | c23654b2ed827986a7efe16f50f0653256628b24 (diff) |
avr-*: split avr-gcc-libc into separate packages
- avr-gcc 5.3.0 -> 5.4.0 closes #28220 Since the packages do not share a common prefix anymore, you need to define the current store paths in your project's Makefile. Example for an atmega644 build: CFLAGS += -I /nix/store/9rffxzds5crcpm76g3nr03jx0aa657cf-avr-libc-2.0.0/avr/include CFLAGS += -B /nix/store/9rffxzds5crcpm76g3nr03jx0aa657cf-avr-libc-2.0.0/avr/lib/avr5 CFLAGS += -L /nix/store/9rffxzds5crcpm76g3nr03jx0aa657cf-avr-libc-2.0.0/avr/lib/avr5 CFLAGS += -L /nix/store/8409dj9js4i5901i63275wxdm783l0p6-avr-gcc-5.4.0/lib/gcc/avr/5.4.0/avr5
Diffstat (limited to 'pkgs/development/misc/avr')
-rw-r--r-- | pkgs/development/misc/avr/binutils/default.nix | 22 | ||||
-rw-r--r-- | pkgs/development/misc/avr/gcc/default.nix | 50 | ||||
-rw-r--r-- | pkgs/development/misc/avr/libc/default.nix | 38 |
3 files changed, 110 insertions, 0 deletions
diff --git a/pkgs/development/misc/avr/binutils/default.nix b/pkgs/development/misc/avr/binutils/default.nix new file mode 100644 index 0000000000000..2fd8c2d39c4e5 --- /dev/null +++ b/pkgs/development/misc/avr/binutils/default.nix @@ -0,0 +1,22 @@ +{ stdenv, fetchurl }: + +let + version = "2.26"; +in +stdenv.mkDerivation { + name = "avr-binutils-${version}"; + + src = fetchurl { + url = "mirror://gnu/binutils/binutils-${version}.tar.bz2"; + sha256 = "1ngc2h3knhiw8s22l8y6afycfaxr5grviqy7mwvm4bsl14cf9b62"; + }; + configureFlags = "--target=avr --enable-languages=c,c++"; + + meta = with stdenv.lib; { + description = "the GNU Binutils for AVR microcontrollers"; + homepage = http://www.gnu.org/software/binutils/; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ mguentner ]; + }; +} diff --git a/pkgs/development/misc/avr/gcc/default.nix b/pkgs/development/misc/avr/gcc/default.nix new file mode 100644 index 0000000000000..f456214f9442a --- /dev/null +++ b/pkgs/development/misc/avr/gcc/default.nix @@ -0,0 +1,50 @@ +{ stdenv, fetchurl, gmp, mpfr, libmpc, zlib, avrbinutils, texinfo }: + +let + version = "5.4.0"; +in +stdenv.mkDerivation { + + name = "avr-gcc-${version}"; + src = fetchurl { + url = "mirror://gcc/releases/gcc-${version}/gcc-${version}.tar.bz2"; + sha256 = "0fihlcy5hnksdxk0sn6bvgnyq8gfrgs8m794b1jxwd1dxinzg3b0"; + }; + + buildInputs = [ gmp mpfr libmpc zlib avrbinutils ]; + + nativeBuildInputs = [ texinfo ]; + + hardeningDisable = [ "format" ]; + + stripDebugList= [ "bin" "libexec" ]; + + enableParallelBuilding = true; + + configurePhase = '' + mkdir gcc-build + cd gcc-build + ../configure \ + --prefix=$out \ + --host=$CHOST \ + --build=$CHOST \ + --target=avr \ + --with-as=${avrbinutils}/bin/avr-as \ + --with-gnu-as \ + --with-gnu-ld \ + --with-ld=${avrbinutils}/bin/avr-ld \ + --with-system-zlib \ + --disable-install-libiberty \ + --disable-nls \ + --disable-libssp \ + --with-dwarf2 \ + --enable-languages=c,c++''; + + meta = with stdenv.lib; { + description = "GNU Compiler Collection, version ${version} for AVR microcontrollers"; + homepage = http://gcc.gnu.org; + license = licenses.gpl3Plus; + platforms = platforms.unix; + maintainers = with maintainers; [ mguentner ]; + }; +} diff --git a/pkgs/development/misc/avr/libc/default.nix b/pkgs/development/misc/avr/libc/default.nix new file mode 100644 index 0000000000000..039846d5fcfb8 --- /dev/null +++ b/pkgs/development/misc/avr/libc/default.nix @@ -0,0 +1,38 @@ +{ stdenv, fetchurl, avrgcc, avrbinutils, automake, autoconf }: + +let + version = "2.0.0"; +in +stdenv.mkDerivation { + name = "avr-libc-${version}"; + + src = fetchurl { + url = http://download.savannah.gnu.org/releases/avr-libc/avr-libc-2.0.0.tar.bz2; + sha256 = "15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj"; + }; + + buildInputs = [ avrgcc avrbinutils automake autoconf ]; + configurePhase = '' + unset LD + unset AS + unset AR + unset CC + unset CXX + unset RANLIB + unset STRIP + + ./configure --prefix=$out --build=$(./config.guess) --host=avr + ''; + + # Make sure we don't strip the libraries in lib/gcc/avr. + stripDebugList= "bin"; + dontPatchELF = true; + + meta = with stdenv.lib; { + description = "a C runtime library for AVR microcontrollers"; + homepage = http://savannah.nongnu.org/projects/avr-libc/; + license = licenses.bsd3; + platforms = platforms.unix; + maintainers = with maintainers; [ mguentner ]; + }; +} |