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
This commit is contained in:
parent
c23654b2ed
commit
6a458c169b
@ -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;
|
||||
};
|
||||
}
|
22
pkgs/development/misc/avr/binutils/default.nix
Normal file
22
pkgs/development/misc/avr/binutils/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
50
pkgs/development/misc/avr/gcc/default.nix
Normal file
50
pkgs/development/misc/avr/gcc/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
38
pkgs/development/misc/avr/libc/default.nix
Normal file
38
pkgs/development/misc/avr/libc/default.nix
Normal file
@ -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 ];
|
||||
};
|
||||
}
|
@ -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 { };
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user