LucyOS/derivations/cross_toolchain/linuxHeaders.nix
2025-09-01 19:57:53 +02:00

87 lines
1.7 KiB
Nix

{ pkgs, cc1 }:
let
nixpkgs = pkgs;
stdenv = nixpkgs.stdenv;
nativePackages = with pkgs; [
cmake
zlib
bison
# binutils
];
name = "linux-headers";
version = "6.17-rc4";
headersCCPkgs = stdenv.mkDerivation {
inherit name version;
src = pkgs.fetchurl {
url = "https://git.kernel.org/torvalds/t/linux-${version}.tar.gz";
hash = "";
};
nativeBuildInputs = [ nativePackages ];
buildInputs = [ cc1 ];
prePhases = "prepEnvironmentPhase";
prepEnvironmentPhase = ''
export LFS=$(pwd)
export LFSTOOLS=$(pwd)/tools
export PATH=$LFSTOOLS/bin:$PATH
export PATH=$LFS/usr/bin:$PATH
export CONFIG_SITE=$LFS/usr/share/config.site
export CC1=${cc1}
chmod -R u+w ./
cp -r $CC1/* $LFS
chmod -R u+w $LFS
mkdir -vp $LFS/usr/{bin,lib,sbin} $LFS/{etc,var}
case $(uname -m) in
x86_64) mkdir -pv $LFS/lib64 ;;
esac
'';
configurePhase = ''
echo "Starting config"
make mrproper
'';
buildPhase = ''
make headers
'';
installPhase = ''
runHook preInstall
find ./usr/include -type f ! -name '*.h' -delete
mkdir $out
cp -rvp ./usr/include $LFS/usr
rm -r $LFS/$sourceRoot
cp -rvp $LFS/* $out/
runHook postInstall
'';
shellHook = ''
echo -e "\033[31mNix Develop -> $name: Loading...\033[0m"
if [[ "$(basename $(pwd))" != "$name" ]]; then
mkdir -p "$name"
cd "$name"
fi
eval "$prepEnvironmentPhase"
echo -e "\033[36mNix Develop -> $name: Loaded.\033[0m"
echo -e "\033[36mNix Develop -> Current directory: $(pwd)\033[0m"
'';
};
in
headersCCPkgs