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 | |
parent | c23654b2ed827986a7efe16f50f0653256628b24 (diff) | |
download | nixlib-6a458c169b86725b6d0b21918bee4526a9289c2f.tar nixlib-6a458c169b86725b6d0b21918bee4526a9289c2f.tar.gz nixlib-6a458c169b86725b6d0b21918bee4526a9289c2f.tar.bz2 nixlib-6a458c169b86725b6d0b21918bee4526a9289c2f.tar.lz nixlib-6a458c169b86725b6d0b21918bee4526a9289c2f.tar.xz nixlib-6a458c169b86725b6d0b21918bee4526a9289c2f.tar.zst nixlib-6a458c169b86725b6d0b21918bee4526a9289c2f.zip |
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')
-rw-r--r-- | pkgs/development/misc/avr-gcc-with-avr-libc/default.nix | 76 | ||||
-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 |
4 files changed, 110 insertions, 76 deletions
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 ]; + }; +} |