2005-12-05 17:11:09 +03:00
|
|
|
source $stdenv/setup
|
2005-06-15 16:30:34 +04:00
|
|
|
|
2006-09-19 02:09:47 +04:00
|
|
|
|
|
|
|
configurePhase=configurePhase
|
|
|
|
configurePhase() {
|
2007-03-27 15:11:58 +04:00
|
|
|
export INSTALL_PATH=$out
|
|
|
|
export INSTALL_MOD_PATH=$out
|
2006-09-19 02:09:47 +04:00
|
|
|
|
2007-05-15 16:53:03 +04:00
|
|
|
|
|
|
|
# Get rid of any "localversion" files installed by patches.
|
|
|
|
if test -z "$allowLocalVersion"; then
|
|
|
|
rm -f localversion*
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Set our own localversion, if specified.
|
|
|
|
if test -n "$localVersion"; then
|
|
|
|
echo "$localVersion" > localversion-nix
|
|
|
|
fi
|
|
|
|
|
|
|
|
|
|
|
|
# Create the config file.
|
2007-03-27 15:11:58 +04:00
|
|
|
cp $config .config
|
|
|
|
chmod u+w .config
|
2007-01-22 18:18:30 +03:00
|
|
|
|
2007-10-31 17:39:43 +03:00
|
|
|
echo --extraConfig--;
|
|
|
|
echo "${extraConfig}";
|
|
|
|
|
|
|
|
echo "$extraConfig" | while read; do
|
|
|
|
optionName=$( echo "$REPLY" | sed -e 's/[^A-Z_]//g' );
|
|
|
|
echo --optionName--;
|
|
|
|
echo "$REPLY";
|
|
|
|
echo ${optionName};
|
|
|
|
if [ -n "${optionName}" ]; then
|
|
|
|
sed -e s/.'*'${optionName}.'*'/"$REPLY/" -i .config
|
|
|
|
fi;
|
|
|
|
done;
|
2007-09-25 23:03:07 +04:00
|
|
|
|
2007-03-27 15:11:58 +04:00
|
|
|
echo "$extraConfig" >> .config
|
2007-01-01 16:42:23 +03:00
|
|
|
|
2007-03-27 15:11:58 +04:00
|
|
|
#substituteInPlace scripts/kconfig/lxdialog/check-lxdialog.sh \
|
|
|
|
# --replace /usr /no-such-path
|
2007-01-01 17:17:06 +03:00
|
|
|
|
2007-03-27 15:11:58 +04:00
|
|
|
# Necessary until NIXPKGS-38 is fixed:
|
|
|
|
echo "#! $SHELL" > scripts/kconfig/lxdialog/check-lxdialog.sh
|
|
|
|
chmod +x scripts/kconfig/lxdialog/check-lxdialog.sh
|
|
|
|
|
|
|
|
make oldconfig \
|
|
|
|
$makeFlags "${makeFlagsArray[@]}"
|
2007-10-31 17:39:43 +03:00
|
|
|
|
|
|
|
echo --finalConfig--
|
|
|
|
cat .config
|
2006-09-19 02:09:47 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
installPhase=installPhase
|
|
|
|
installPhase() {
|
|
|
|
|
2007-03-27 15:11:58 +04:00
|
|
|
ensureDir $out
|
2007-02-08 17:28:49 +03:00
|
|
|
|
2008-05-29 17:21:47 +04:00
|
|
|
# New kernel versions have a combined tree for i386 and x86_64.
|
|
|
|
archDir=$arch
|
|
|
|
if test -e arch/x86 -a \( "$arch" = i386 -o "$arch" = x86_64 \); then
|
|
|
|
archDir=x86
|
|
|
|
fi
|
|
|
|
|
2007-03-27 15:11:58 +04:00
|
|
|
# Copy the bzImage and System.map.
|
|
|
|
cp System.map $out
|
|
|
|
if test "$arch" = um; then
|
|
|
|
ensureDir $out/bin
|
|
|
|
cp linux $out/bin
|
|
|
|
else
|
2008-05-29 17:21:47 +04:00
|
|
|
cp arch/$archDir/boot/bzImage $out/vmlinuz
|
2007-03-27 15:11:58 +04:00
|
|
|
fi
|
|
|
|
|
|
|
|
# Install the modules in $out/lib/modules with matching paths
|
|
|
|
# in modules.dep (i.e., refererring to $out/lib/modules, not
|
|
|
|
# /lib/modules). The depmod_opts= is to prevent the kernel
|
|
|
|
# from passing `-b PATH' to depmod.
|
|
|
|
export MODULE_DIR=$out/lib/modules/
|
2008-04-25 14:22:09 +04:00
|
|
|
substituteInPlace Makefile --replace '-b $(INSTALL_MOD_PATH) -r' ''
|
2007-03-27 15:11:58 +04:00
|
|
|
make modules_install \
|
|
|
|
DEPMOD=$module_init_tools/sbin/depmod depmod_opts= \
|
|
|
|
$makeFlags "${makeFlagsArray[@]}" \
|
|
|
|
$installFlags "${installFlagsArray[@]}"
|
|
|
|
|
|
|
|
# Strip the kernel modules.
|
|
|
|
echo "Stripping kernel modules..."
|
|
|
|
find $out -name "*.ko" -print0 | xargs -0 strip -S
|
|
|
|
|
|
|
|
# move this to install later on
|
|
|
|
# largely copied from early FC3 kernel spec files
|
|
|
|
version=$(cd $out/lib/modules && ls -d *)
|
|
|
|
|
|
|
|
# remove symlinks and create directories
|
|
|
|
rm -f $out/lib/modules/$version/build
|
|
|
|
rm -f $out/lib/modules/$version/source
|
|
|
|
mkdir $out/lib/modules/$version/build
|
|
|
|
|
|
|
|
# copy config
|
|
|
|
cp .config $out/lib/modules/$version/build/.config
|
|
|
|
|
|
|
|
if test "$arch" != um; then
|
2005-08-20 02:43:51 +04:00
|
|
|
# copy all Makefiles and Kconfig files
|
2007-03-27 15:11:58 +04:00
|
|
|
ln -s $out/lib/modules/$version/build $out/lib/modules/$version/source
|
2006-10-31 14:40:35 +03:00
|
|
|
cp --parents `find -type f -name Makefile -o -name "Kconfig*"` $out/lib/modules/$version/build
|
2005-08-20 02:43:51 +04:00
|
|
|
cp Module.symvers $out/lib/modules/$version/build
|
|
|
|
|
|
|
|
# weed out unneeded stuff
|
|
|
|
rm -rf $out/lib/modules/$version/build/Documentation
|
|
|
|
rm -rf $out/lib/modules/$version/build/scripts
|
|
|
|
rm -rf $out/lib/modules/$version/build/include
|
|
|
|
|
|
|
|
# copy architecture dependent files
|
2008-05-29 17:21:47 +04:00
|
|
|
cp -a arch/$archDir/scripts $out/lib/modules/$version/build/ || true
|
|
|
|
cp -a arch/$archDir/*lds $out/lib/modules/$version/build/ || true
|
|
|
|
cp -a arch/$archDir/Makefile*.cpu $out/lib/modules/$version/build/arch/$archDir/ || true
|
|
|
|
cp -a --parents arch/$archDir/kernel/asm-offsets.s $out/lib/modules/$version/build/arch/$archDir/kernel/ || true
|
2005-08-20 02:43:51 +04:00
|
|
|
|
|
|
|
# copy scripts
|
2006-10-31 14:40:35 +03:00
|
|
|
rm -f scripts/*.o
|
|
|
|
rm -f scripts/*/*.o
|
|
|
|
cp -a scripts $out/lib/modules/$version/build
|
2005-08-20 02:43:51 +04:00
|
|
|
|
|
|
|
# copy include files
|
2009-01-15 18:00:30 +03:00
|
|
|
includeDir=$out/lib/modules/$version/build/include
|
|
|
|
mkdir -p $includeDir
|
|
|
|
(cd include && cp -a acpi config linux math-emu media net pcmcia rxrpc scsi sound video asm-generic $includeDir)
|
|
|
|
if test -e arch/$archDir/include/asm; then
|
|
|
|
cp -a arch/$archDir/include/asm $includeDir
|
|
|
|
else
|
2009-01-16 13:28:18 +03:00
|
|
|
cp -a include/asm-$archDir $includeDir/asm
|
2009-01-15 18:00:30 +03:00
|
|
|
fi
|
2007-03-27 15:11:58 +04:00
|
|
|
fi
|
2005-06-15 16:30:34 +04:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
genericBuild
|