Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 195128 | Differences between
and this patch

Collapse All | Expand All

(-)linux-mod.eclass.orig (-49 / +133 lines)
Lines 610-660 Link Here
610
linux-mod_src_compile() {
610
linux-mod_src_compile() {
611
	debug-print-function ${FUNCNAME} $*
611
	debug-print-function ${FUNCNAME} $*
612
612
613
	local modulename libdir srcdir objdir i n myABI="${ABI}"
613
	if has modules-rebuild ${FEATURES};
614
	set_arch_to_kernel
614
	then
615
	ABI="${KERNEL_ABI}"
615
		find /lib/modules/ -iname build | xargs -n 1 dirname | while read k;
616
617
	BUILD_TARGETS=${BUILD_TARGETS:-clean module}
618
	strip_modulenames;
619
	cd "${S}"
620
	for i in ${MODULE_NAMES}
621
	do
622
		unset libdir srcdir objdir
623
		for n in $(find_module_params ${i})
624
		do
616
		do
625
			eval ${n/:*}=${n/*:/}
617
			if [ ! -e "$k/build/Makefile" ]; then
626
		done
618
				ewarn "Skipping ${k:13} because of missing it\`s sourcedir(Makefile)"
627
		libdir=${libdir:-misc}
619
				continue
628
		srcdir=${srcdir:-${S}}
629
		objdir=${objdir:-${srcdir}}
630
631
		if [ ! -f "${srcdir}/.built" ];
632
		then
633
			cd ${srcdir}
634
			einfo "Preparing ${modulename} module"
635
			if [[ -n ${ECONF_PARAMS} ]]
636
			then
637
				econf ${ECONF_PARAMS} || \
638
				die "Unable to run econf ${ECONF_PARAMS}"
639
			fi
620
			fi
621
			local modulename libdir srcdir objdir i n myABI="${ABI}"
622
			set_arch_to_kernel
623
			ABI="${KERNEL_ABI}"
624
625
			BUILD_TARGETS=${BUILD_TARGETS:-module}
626
			strip_modulenames;
627
			for i in ${MODULE_NAMES}
628
			do
629
				cd "${S}"
630
				unset libdir srcdir objdir
631
				for n in $(find_module_params ${i})
632
				do
633
					eval ${n/:*}=${n/*:/}
634
				done
635
				libdir=${libdir:-misc}
636
				srcdir=${srcdir:-${S}}
637
				objdir=${objdir:-${srcdir}}
638
639
				cd ${srcdir}
640
				einfo "Preparing ${modulename} module for ${k:13}"
641
				if [[ -n ${ECONF_PARAMS} ]];
642
				then
643
					if ! econf ${ECONF_PARAMS};
644
					then
645
						eerror "Unable to run econf ${ECONF_PARAMS}"
646
						break
647
					fi
648
				fi
640
649
641
			# This looks messy, but it is needed to handle multiple variables
650
			# This looks messy, but it is needed to handle multiple variables
642
			# being passed in the BUILD_* stuff where the variables also have
651
			# being passed in the BUILD_* stuff where the variables also have
643
			# spaces that must be preserved. If don't do this, then the stuff
652
			# spaces that must be preserved. If don't do this, then the stuff
644
			# inside the variables gets used as targets for Make, which then
653
			# inside the variables gets used as targets for Make, which then
645
			# fails.
654
			# fails.
646
			eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" \
655
				einfo `pwd`
656
				if ! eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" \
657
							CROSS_COMPILE=${CHOST}- \
658
							LDFLAGS=\"$(get_abi_LDFLAGS)\" \
659
							${BUILD_FIXES} \
660
							${BUILD_PARAMS} \
661
							${BUILD_TARGETS} SYSOUT=\"${k}/build\"
662
							SYSSRC=\"${k}/build\"";
663
				then
664
					eerror "Unable to emake HOSTCC="$(tc-getBUILD_CC)"
665
					CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)"
666
					${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}"
667
					break
668
				fi
669
				einfo "Installing ${modulename} module for ${k:13}"
670
				cd ${objdir}
671
				insinto ${k}/${libdir}
672
				if doins ${modulename}.${KV_OBJ}
673
				then
674
					touch ${T}/.built_one
675
				else
676
					eerror "doins ${modulename}.${KV_OBJ} failed"
677
					break
678
				fi
679
			done
680
		done
681
		#Check if we built at least one module:
682
		if [ ! -f ${T}/.built_one ];
683
		then
684
			die "Fail to build any kernel module! :-("
685
		fi
686
		mv ${D}/lib/modules ${T}/kernel-modules
687
	else
688
		local modulename libdir srcdir objdir i n myABI="${ABI}"
689
		set_arch_to_kernel
690
		ABI="${KERNEL_ABI}"
691
692
		BUILD_TARGETS=${BUILD_TARGETS:-clean module}
693
		strip_modulenames;
694
		cd "${S}"
695
		for i in ${MODULE_NAMES}
696
		do
697
			unset libdir srcdir objdir
698
			for n in $(find_module_params ${i})
699
			do
700
				eval ${n/:*}=${n/*:/}
701
			done
702
			libdir=${libdir:-misc}
703
			srcdir=${srcdir:-${S}}
704
			objdir=${objdir:-${srcdir}}
705
706
			if [ ! -f "${srcdir}/.built" ];
707
			then
708
				cd ${srcdir}
709
				einfo "Preparing ${modulename} module"
710
				if [[ -n ${ECONF_PARAMS} ]]
711
				then
712
					econf ${ECONF_PARAMS} || \
713
					die "Unable to run econf ${ECONF_PARAMS}"
714
				fi
715
716
				# This looks messy, but it is needed to handle multiple variables
717
				# being passed in the BUILD_* stuff where the variables also have
718
				# spaces that must be preserved. If don't do this, then the stuff
719
				# inside the variables gets used as targets for Make, which then
720
				# fails.
721
				eval "emake HOSTCC=\"$(tc-getBUILD_CC)\" \
647
						CROSS_COMPILE=${CHOST}- \
722
						CROSS_COMPILE=${CHOST}- \
648
						LDFLAGS=\"$(get_abi_LDFLAGS)\" \
723
						LDFLAGS=\"$(get_abi_LDFLAGS)\" \
649
						${BUILD_FIXES} \
724
						${BUILD_FIXES} \
650
						${BUILD_PARAMS} \
725
						${BUILD_PARAMS} \
651
						${BUILD_TARGETS} " \
726
						${BUILD_TARGETS} " \
652
				|| die "Unable to emake HOSTCC="$(tc-getBUILD_CC)" CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES} ${BUILD_PARAMS} ${BUILD_TARGETS}"
727
					|| die "Unable to emake HOSTCC="$(tc-getBUILD_CC)"
653
			cd ${OLDPWD}
728
CROSS_COMPILE=${CHOST}- LDFLAGS="$(get_abi_LDFLAGS)" ${BUILD_FIXES}
654
			touch ${srcdir}/.built
729
${BUILD_PARAMS} ${BUILD_TARGETS}"
655
		fi
730
				cd ${OLDPWD}
656
	done
731
				touch ${srcdir}/.built
657
732
			fi
733
		done
734
	fi
735
	cd ${OLDPWD}
658
	set_arch_to_portage
736
	set_arch_to_portage
659
	ABI="${myABI}"
737
	ABI="${myABI}"
660
}
738
}
Lines 676-700 Link Here
676
	local modulename libdir srcdir objdir i n
754
	local modulename libdir srcdir objdir i n
677
755
678
	strip_modulenames;
756
	strip_modulenames;
679
	for i in ${MODULE_NAMES}
757
	if has modules-rebuild ${FEATURES};
680
	do
758
	then
681
		unset libdir srcdir objdir
759
		mkdir -p ${D}/lib
682
		for n in $(find_module_params ${i})
760
		cp -a ${T}/kernel-modules ${D}/lib/modules || die "Kernel module installation failed"
761
	else
762
		for i in ${MODULE_NAMES}
683
		do
763
		do
684
			eval ${n/:*}=${n/*:/}
764
			unset libdir srcdir objdir
685
		done
765
			for n in $(find_module_params ${i})
686
		libdir=${libdir:-misc}
766
			do
687
		srcdir=${srcdir:-${S}}
767
				eval ${n/:*}=${n/*:/}
688
		objdir=${objdir:-${srcdir}}
768
			done
689
769
			libdir=${libdir:-misc}
690
		einfo "Installing ${modulename} module"
770
			srcdir=${srcdir:-${S}}
691
		cd ${objdir} || die "${objdir} does not exist"
771
			objdir=${objdir:-${srcdir}}
692
		insinto /lib/modules/${KV_FULL}/${libdir}
772
693
		doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed"
773
			einfo "Installing ${modulename} module"
694
		cd ${OLDPWD}
774
			cd ${objdir} || die "${objdir} does not exist"
775
			insinto /lib/modules/${KV_FULL}/${libdir}
776
			doins ${modulename}.${KV_OBJ} || die "doins ${modulename}.${KV_OBJ} failed"
777
			cd ${OLDPWD}
695
778
696
		generate_modulesd ${objdir}/${modulename}
779
			generate_modulesd ${objdir}/${modulename}
697
	done
780
		done
781
	fi
698
}
782
}
699
783
700
# @FUNCTION: linux-mod_pkg_preinst
784
# @FUNCTION: linux-mod_pkg_preinst

Return to bug 195128