diff --git a/ChangeLog b/ChangeLog index 7c4975298..9047b44f9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2009-03-04 Robert Millan + + Filter /etc/grub.d/10_* so that only add-ons for native kernels are + installed. + + * Makefile.in (host_kernel): New variable. + * conf/common.rmk (grub-mkconfig_SCRIPTS): Conditionalize all 10_*.in + scripts instead of just the windows one. + * configure.ac: Initialize and AC_SUBST `host_kernel'. + 2009-03-04 Felix Zielcke * conf/i386-pc.rmk (grub_emu_SOURCES): Add `kern/list.c' and diff --git a/Makefile.in b/Makefile.in index 44dc57795..28aa38506 100644 --- a/Makefile.in +++ b/Makefile.in @@ -48,6 +48,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ host_os = @host_os@ +host_kernel = @host_kernel@ host_cpu = @host_cpu@ target_cpu = @target_cpu@ diff --git a/conf/common.mk b/conf/common.mk index b07871f78..b16daf520 100644 --- a/conf/common.mk +++ b/conf/common.mk @@ -578,9 +578,9 @@ CLEANFILES += update-grub_lib %: util/grub.d/%.in config.status ./config.status --file=$@:$< chmod +x $@ -grub-mkconfig_SCRIPTS = 00_header 10_linux 10_hurd 10_freebsd 30_os-prober 40_custom -ifeq ($(host_os), cygwin) -grub-mkconfig_SCRIPTS += 10_windows +grub-mkconfig_SCRIPTS = 00_header 30_os-prober 40_custom +ifneq (, $(host_kernel)) +grub-mkconfig_SCRIPTS += 10_$(host_kernel) endif CLEANFILES += $(grub-mkconfig_SCRIPTS) diff --git a/conf/common.rmk b/conf/common.rmk index 9a62ac3c5..857d8b869 100644 --- a/conf/common.rmk +++ b/conf/common.rmk @@ -145,9 +145,9 @@ CLEANFILES += update-grub_lib %: util/grub.d/%.in config.status ./config.status --file=$@:$< chmod +x $@ -grub-mkconfig_SCRIPTS = 00_header 10_linux 10_hurd 10_freebsd 30_os-prober 40_custom -ifeq ($(host_os), cygwin) -grub-mkconfig_SCRIPTS += 10_windows +grub-mkconfig_SCRIPTS = 00_header 30_os-prober 40_custom +ifneq (, $(host_kernel)) +grub-mkconfig_SCRIPTS += 10_$(host_kernel) endif CLEANFILES += $(grub-mkconfig_SCRIPTS) diff --git a/configure b/configure index b24958080..89b564ae3 100644 --- a/configure +++ b/configure @@ -664,6 +664,7 @@ target target_cpu target_vendor target_os +host_kernel platform CMP YACC @@ -2006,6 +2007,17 @@ case "$host_os" in mingw32) host_os=cygwin ;; esac +# This normalizes the names, and creates a new variable ("host_kernel") +# while at it, since the mapping is not always 1:1 (e.g. different OSes +# using the same kernel type). +case "$host_os" in + gnu*) host_kernel=hurd ;; + linux*) host_kernel=linux ;; + freebsd* | kfreebsd*-gnu) host_kernel=freebsd ;; + cygwin) host_kernel=windows ;; +esac + + @@ -9528,6 +9540,7 @@ target!$target$ac_delim target_cpu!$target_cpu$ac_delim target_vendor!$target_vendor$ac_delim target_os!$target_os$ac_delim +host_kernel!$host_kernel$ac_delim platform!$platform$ac_delim CMP!$CMP$ac_delim YACC!$YACC$ac_delim @@ -9577,7 +9590,7 @@ LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 96; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 97; then break elif $ac_last_try; then { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 diff --git a/configure.ac b/configure.ac index 0220898c6..134e0a339 100644 --- a/configure.ac +++ b/configure.ac @@ -103,8 +103,19 @@ case "$host_os" in mingw32) host_os=cygwin ;; esac +# This normalizes the names, and creates a new variable ("host_kernel") +# while at it, since the mapping is not always 1:1 (e.g. different OSes +# using the same kernel type). +case "$host_os" in + gnu*) host_kernel=hurd ;; + linux*) host_kernel=linux ;; + freebsd* | kfreebsd*-gnu) host_kernel=freebsd ;; + cygwin) host_kernel=windows ;; +esac + AC_SUBST(host_cpu) AC_SUBST(host_os) +AC_SUBST(host_kernel) AC_SUBST(target_cpu) AC_SUBST(platform)