diff --git a/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix b/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix deleted file mode 100644 index 1035757fb80e..000000000000 --- a/pkgs/development/misc/avr-gcc-with-avr-libc/default.nix +++ /dev/null @@ -1,76 +0,0 @@ -{ stdenv, fetchurl, texinfo, gmp, mpfr, libmpc, zlib }: - -stdenv.mkDerivation { - name = "avr-gcc-libc"; - - srcs = [ - (fetchurl { - url = "mirror://gnu/binutils/binutils-2.26.tar.bz2"; - sha256 = "1ngc2h3knhiw8s22l8y6afycfaxr5grviqy7mwvm4bsl14cf9b62"; - }) - - (fetchurl { - url = "mirror://gcc/releases/gcc-5.3.0/gcc-5.3.0.tar.bz2"; - sha256 = "1ny4smkp5bzs3cp8ss7pl6lk8yss0d9m4av1mvdp72r1x695akxq"; - }) - - (fetchurl { - url = http://download.savannah.gnu.org/releases/avr-libc/avr-libc-2.0.0.tar.bz2; - sha256 = "15svr2fx8j6prql2il2fc0ppwlv50rpmyckaxx38d3gxxv97zpdj"; - }) - ]; - - sourceRoot = "."; - - nativeBuildInputs = [ texinfo ]; - - buildInputs = [ gmp mpfr libmpc zlib ]; - - hardeningDisable = [ "format" ]; - - # Make sure we don't strip the libraries in lib/gcc/avr. - stripDebugList= [ "bin" "avr/bin" "libexec" ]; - - installPhase = '' - # important, without this gcc won't find the binutils executables - export PATH=$PATH:$out/bin - - # Binutils. - pushd binutils-*/ - mkdir obj-avr - cd obj-avr - ../configure --target=avr --prefix="$out" --disable-nls --disable-debug --disable-dependency-tracking - make $MAKE_FLAGS - make install - popd - - # GCC. - pushd gcc-* - mkdir obj-avr - cd obj-avr - ../configure --target=avr --prefix="$out" --disable-nls --disable-libssp --with-dwarf2 --disable-install-libiberty --with-system-zlib --enable-languages=c,c++ - make $MAKE_FLAGS - make install - popd - - # We don't want avr-libc to use the native compiler. - export BUILD_CC=$CC - export BUILD_CXX=$CXX - unset CC - unset CXX - - # AVR-libc. - pushd avr-libc-* - ./configure --prefix="$out" --build=`./config.guess` --host=avr - make $MAKE_FLAGS - make install - popd - ''; - - meta = with stdenv.lib; { - description = "AVR development environment including binutils, avr-gcc and avr-libc"; - # I've tried compiling the packages separately.. too much hassle. This just works. Fine. - license = ["GPL" "LGPL"]; # see single packages .. - platforms = platforms.linux; - }; -} diff --git a/pkgs/development/misc/avr/binutils/default.nix b/pkgs/development/misc/avr/binutils/default.nix new file mode 100644 index 000000000000..2fd8c2d39c4e --- /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 000000000000..f456214f9442 --- /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 000000000000..039846d5fcfb --- /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 ]; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f2f342294929..bd38605af681 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -6587,7 +6587,13 @@ with pkgs; samples = true; }; - avrgcclibc = callPackage ../development/misc/avr-gcc-with-avr-libc {}; + avrgcclibc = throw "avrgcclibs are now separate packages, install avrbinutils, avrgcc and avrlibc"; + + avrbinutils = callPackage ../development/misc/avr/binutils {}; + + avrgcc = callPackage ../development/misc/avr/gcc {}; + + avrlibc = callPackage ../development/misc/avr/libc {}; avr8burnomat = callPackage ../development/misc/avr8-burn-omat { };