about summary refs log tree commit diff
path: root/pkgs/development/misc
diff options
context:
space:
mode:
authorMaximilian Güntner <code@sourcediver.org>2017-09-05 04:42:26 +0200
committerMaximilian Güntner <code@sourcediver.org>2017-09-05 05:31:38 +0200
commit6a458c169b86725b6d0b21918bee4526a9289c2f (patch)
treef9c46cc294e8b1c2f3f76a1e2fea4b7e5f7bfe40 /pkgs/development/misc
parentc23654b2ed827986a7efe16f50f0653256628b24 (diff)
downloadnixlib-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.nix76
-rw-r--r--pkgs/development/misc/avr/binutils/default.nix22
-rw-r--r--pkgs/development/misc/avr/gcc/default.nix50
-rw-r--r--pkgs/development/misc/avr/libc/default.nix38
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 ];
+  };
+}