diff options
Diffstat (limited to 'libre/kernel26-libre/PKGBUILD')
-rw-r--r-- | libre/kernel26-libre/PKGBUILD | 76 |
1 files changed, 58 insertions, 18 deletions
diff --git a/libre/kernel26-libre/PKGBUILD b/libre/kernel26-libre/PKGBUILD index 223145716..37ee4bb2f 100644 --- a/libre/kernel26-libre/PKGBUILD +++ b/libre/kernel26-libre/PKGBUILD @@ -10,31 +10,43 @@ pkgver=${_basekernel}.6 pkgrel=1 makedepends=('xmlto' 'docbook-xsl') _patchname="patch-${pkgver}-${pkgrel}-LIBRE" -arch=(i686 x86_64) +arch=(i686 x86_64 mips64el) license=('GPL2') url="http://linux-libre.fsfla.org/" options=(!strip) source=(http://linux-libre.fsfla.org/pub/linux-libre/releases/${pkgver}-libre/linux-${pkgver}-libre.tar.bz2 + http://linux-libre.fsfla.org/pub/linux-libre/lemote/gnewsense/pool/linux-patches-${pkgver}-libre-lemote_0lxo_mipsel.tar.bz2 http://repo.parabolagnulinux.org/other/kernel26/${_patchname}.bz2 # the main kernel config files config.i686 config.x86_64 # standard config files for mkinitcpio ramdisk kernel26.preset + kernel26.install + Kbuild + Kbuild.platforms) kernel26.install) -md5sums=('a1765e44f7835a27d29790ed4be58ee7' - 'c04fef76ddfc8942d50d42b229020ac8' - 'a93edb3877da53a09a73104a35e7006b' - 'f5995bd55f29a93e0216b0ec391b0fca' - '25584700a0a679542929c4bed31433b6' - '2d68b4cf4caedd1f0188f4877eca1d43') build() { cd ${srcdir}/linux-$pkgver # Add -LIBRE patches # See http://projects.parabolagnulinux.org/linux-libre-2.6-LIBRE.git/ - patch -Np1 -i ${srcdir}/${_patchname} || return 1 + patch -Np1 -i ${srcdir}/${_patchname} + sed -i "s|^EXTRAVERSION.*|EXTRAVERSION = .${pkgver##*.}-libre|" Makefile - cat $srcdir/config.$CARCH > ./.config # simpler + if [ "$CARCH" == "mips64el" ]; then + msg2 "Adding loongson-community patches" + patch -Np1 -i ${srcdir}/$pkgver-*-loongson-community.patch + patch -Np0 -i ${srcdir}/lxo-config.patch + +# ensure N32 + sed -i "s|CONFIG_MIPS32_O32=.*|# CONFIG_MIPS32_O32 is not set|g" ./.config + sed -i "s|CONFIG_MIPS32_N32=.*|CONFIG_MIPS32_N32=y|g" ./.config + +# build with -Wno-error + cp --remove-destination ${srcdir}/Kbuild arch/mips/ + else + cat $srcdir/config.$CARCH > ./.config # simpler + fi for this_doesnt_build in CONFIG_WLAGS49_H2 CONFIG_WLAGS49_H25; do sed -i "s|^${this_doesnt_build}=.*|# ${this_doesnt_build} is not set|g" ./.config @@ -64,7 +76,11 @@ build() { #################### yes "" | make config # build! - make ${MAKEFLAGS} bzImage modules + if [ "$CARCH" == "mips64el" ]; then + make ${MAKEFLAGS} vmlinuz modules + else + make ${MAKEFLAGS} bzImage modules + fi } package_kernel26-libre() { @@ -86,13 +102,20 @@ package_kernel26-libre() { optdepends=('crda: to set the correct wireless channels of your country') KARCH=x86 + [[ $CARCH = "mips64el" ]] && KARCH=mips cd ${srcdir}/linux-$pkgver # get kernel version _kernver="$(make kernelrelease)" mkdir -p ${pkgdir}/{lib/modules,lib/firmware,boot} make INSTALL_MOD_PATH=${pkgdir} modules_install cp System.map ${pkgdir}/boot/System.map26${_kernelname} - cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26${_kernelname} + + if [ "$CARCH" == "mips64el" ]; then + cp vmlinuz ${pkgdir}/boot/vmlinuz26${_kernelname} + else + cp arch/$KARCH/boot/bzImage ${pkgdir}/boot/vmlinuz26${_kernelname} + install -m644 -D vmlinux.32 ${pkgdir}/usr/src/linux-${_kernver}/vmlinux32 + fi # # add vmlinux install -m644 -D vmlinux ${pkgdir}/usr/src/linux-${_kernver}/vmlinux @@ -124,6 +147,9 @@ package_kernel26-libre-headers() { replaces=('kernel26-headers') conflicts=('kernel26-headers') KARCH=x86 + [[ $CARCH = "mips64el" ]] && KARCH=mips + cd ${srcdir}/linux-$pkgver + _kernver="$(make kernelrelease)" mkdir -p ${pkgdir}/lib/modules/${_kernver} cd ${pkgdir}/lib/modules/${_kernver} ln -sf ../../../usr/src/linux-${_kernver} build @@ -142,8 +168,13 @@ package_kernel26-libre-headers() { done # copy arch includes for external modules - mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/x86 - cp -a arch/x86/include ${pkgdir}/usr/src/linux-${_kernver}/arch/x86/ + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH + cp -a arch/$KARCH/include ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ + if [ "$CARCH" = "mips64el" ]; then + cp -a arch/$KARCH/Kbuild ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ + cp -a arch/$KARCH/loongson ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ + cp -a $srcdir/Kbuild.platforms ${pkgdir}/usr/src/linux-${_kernver}/arch/$KARCH/ + fi # copy files necessary for later builds, like nvidia and vmware cp Module.symvers ${pkgdir}/usr/src/linux-${_kernver} @@ -167,8 +198,10 @@ package_kernel26-libre-headers() { mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i cp -a drivers/media/video/$i/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/media/video/$i done - mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/staging/usbvideo/ - cp -a drivers/staging/usbvideo/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/staging/usbvideo/ + if [ "$CARCH" != "mips64el" ]; then + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/drivers/staging/usbvideo/ + cp -a drivers/staging/usbvideo/*.h ${pkgdir}/usr/src/linux-${_kernver}/drivers/staging/usbvideo/ + fi # add docbook makefile install -D -m644 Documentation/DocBook/Makefile \ ${pkgdir}/usr/src/linux-${_kernver}/Documentation/DocBook/Makefile @@ -189,8 +222,10 @@ package_kernel26-libre-headers() { # add dvb headers for external modules # in reference to: # http://bugs.archlinux.org/task/11194 - mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ - cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ + if [ "$CARCH" != "mips64el" ]; then + mkdir -p ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ + cp include/config/dvb/*.h ${pkgdir}/usr/src/linux-${_kernver}/include/config/dvb/ + fi # add dvb headers for http://mcentral.de/hg/~mrec/em28xx-new # in reference to: # http://bugs.archlinux.org/task/13146 @@ -230,7 +265,12 @@ package_kernel26-libre-headers() { esac done # remove unneeded architectures - rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,mips,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa} + rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/{alpha,arm,arm26,avr32,blackfin,cris,frv,h8300,ia64,m32r,m68k,m68knommu,microblaze,mn10300,parisc,powerpc,ppc,s390,sh,sh64,sparc,sparc64,um,v850,xtensa} + if [ "$CARCH" = "mips64el" ]; then + rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/x86 + else + rm -rf ${pkgdir}/usr/src/linux-${_kernver}/arch/mips + fi } package_kernel26-libre-docs() { |