diff options
author | Evgeny Egorochkin <phreedom.stdin@gmail.com> | 2013-01-13 16:17:43 +0200 |
---|---|---|
committer | Evgeny Egorochkin <phreedom.stdin@gmail.com> | 2013-01-13 16:18:27 +0200 |
commit | 4dc4d1012352a97b440ce68681c9cb9643010a60 (patch) | |
tree | b61da83d474c13ac26ffa73ff06e84841258e64b /pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh | |
parent | 2738f6d5cc692addee26d374b8ef61e293855a7a (diff) | |
download | nixlib-4dc4d1012352a97b440ce68681c9cb9643010a60.tar nixlib-4dc4d1012352a97b440ce68681c9cb9643010a60.tar.gz nixlib-4dc4d1012352a97b440ce68681c9cb9643010a60.tar.bz2 nixlib-4dc4d1012352a97b440ce68681c9cb9643010a60.tar.lz nixlib-4dc4d1012352a97b440ce68681c9cb9643010a60.tar.xz nixlib-4dc4d1012352a97b440ce68681c9cb9643010a60.tar.zst nixlib-4dc4d1012352a97b440ce68681c9cb9643010a60.zip |
nvidia-legacy304: fix build
Diffstat (limited to 'pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh')
-rwxr-xr-x | pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh b/pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh new file mode 100755 index 000000000000..bb8beab29c58 --- /dev/null +++ b/pkgs/os-specific/linux/nvidia-x11/builder-legacy304.sh @@ -0,0 +1,101 @@ +source $stdenv/setup + +dontPatchELF=1 # must keep libXv, $out in RPATH + + +unpackFile() { + sh $src -x +} + + +buildPhase() { + if test -z "$libsOnly"; then + # Create the module. + echo "Building linux driver against kernel: $kernel"; + cd kernel + kernelVersion=$(cd $kernel/lib/modules && ls) + sysSrc=$(echo $kernel/lib/modules/$kernelVersion/build/) + unset src # used by the nv makefile + # Hack necessary to compile on 2.6.28. + export NIX_CFLAGS_COMPILE="$NIX_CFLAGS_COMPILE -I$sysSrc/include/asm/mach-default -I$sysSrc/include/generated" + make SYSSRC=$sysSrc module + cd .. + fi +} + + +installPhase() { + + # Install libGL and friends. + mkdir -p $out/lib/vendors + + for f in \ + libcuda libGL libnvcuvid libnvidia-cfg libnvidia-compiler \ + libnvidia-glcore libnvidia-ml libnvidia-opencl \ + libnvidia-tls libOpenCL libnvidia-tls libvdpau_nvidia + do + cp -prd $f.* $out/lib/ + ln -snf $f.so.$versionNumber $out/lib/$f.so + ln -snf $f.so.$versionNumber $out/lib/$f.so.1 + done + + cp -p nvidia.icd $out/lib/vendors/ + cp -prd tls $out/lib/ + cp -prd libOpenCL.so.1.0.0 $out/lib/ + ln -snf libOpenCL.so.1.0.0 $out/lib/libOpenCL.so + ln -snf libOpenCL.so.1.0.0 $out/lib/libOpenCL.so.1 + + patchelf --set-rpath $out/lib:$glPath $out/lib/libGL.so.*.* + patchelf --set-rpath $out/lib:$glPath $out/lib/libvdpau_nvidia.so.*.* + patchelf --set-rpath $cudaPath $out/lib/libcuda.so.*.* + + if test -z "$libsOnly"; then + + # Install the kernel module. + mkdir -p $out/lib/modules/$kernelVersion/misc + cp kernel/nvidia.ko $out/lib/modules/$kernelVersion/misc + + # Install the X driver. + mkdir -p $out/lib/xorg/modules + cp -p libnvidia-wfb.* $out/lib/xorg/modules/ + mkdir -p $out/lib/xorg/modules/drivers + cp -p nvidia_drv.so $out/lib/xorg/modules/drivers + mkdir -p $out/lib/xorg/modules/extensions + cp -p libglx.so.* $out/lib/xorg/modules/extensions + + ln -snf libnvidia-wfb.so.$versionNumber $out/lib/xorg/modules/libnvidia-wfb.so.1 + ln -snf libglx.so.$versionNumber $out/lib/xorg/modules/extensions/libglx.so + + patchelf --set-rpath $out/lib $out/lib/xorg/modules/extensions/libglx.so.*.* + + # Install the programs. + mkdir -p $out/bin + + for i in nvidia-settings nvidia-xconfig; do + cp $i $out/bin/$i + patchelf --interpreter "$(cat $NIX_GCC/nix-support/dynamic-linker)" \ + --set-rpath $out/lib:$programPath:$glPath $out/bin/$i + done + + # Header files etc. + mkdir -p $out/include/nvidia + cp -p *.h $out/include/nvidia + + mkdir -p $out/share/man/man1 + cp -p *.1.gz $out/share/man/man1 + + mkdir -p $out/share/applications + cp -p *.desktop $out/share/applications + + mkdir -p $out/share/pixmaps + cp -p nvidia-settings.png $out/share/pixmaps + + # Patch the `nvidia-settings.desktop' file. + substituteInPlace $out/share/applications/nvidia-settings.desktop \ + --replace '__UTILS_PATH__' $out/bin \ + --replace '__PIXMAP_PATH__' $out/share/pixmaps + fi +} + + +genericBuild |