diff --git a/ChangeLog b/ChangeLog index a20d59833..3337228ba 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,12 @@ +2008-08-09 Christian Franke + + * Makefile.in: Add `target_os' and `enable_grub_pe2elf'. + * conf/common.rmk: Install `grub-pe2elf' only if requested. + Install `grub.d/10_windows' only on Cygwin. + * configure.ac: Add subst of `target_os'. + Check `target_os' also before setting TARGET_OBJ2ELF. + Add `--enable-grub-pe2elf'. + 2008-08-08 Robert Millan * kern/disk.c: Replace `' with `'. diff --git a/Makefile.in b/Makefile.in index 2121431de..613797442 100644 --- a/Makefile.in +++ b/Makefile.in @@ -48,6 +48,7 @@ PACKAGE_STRING = @PACKAGE_STRING@ PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ target_cpu = @target_cpu@ +target_os = @target_os@ platform = @platform@ INSTALL = @INSTALL@ @@ -92,6 +93,7 @@ UNIFONT_HEX = @UNIFONT_HEX@ # Options. enable_grub_emu = @enable_grub_emu@ enable_grub_fstest = @enable_grub_fstest@ +enable_grub_pe2elf = @enable_grub_pe2elf@ enable_lzo = @enable_lzo@ ### General variables. diff --git a/conf/common.mk b/conf/common.mk index e287542d4..55cbf472b 100644 --- a/conf/common.mk +++ b/conf/common.mk @@ -459,7 +459,10 @@ grub_editenv-kern_err.o: kern/err.c $(kern/err.c_DEPENDENCIES) CLEANFILES += grub-editenv # for grub-pe2elf +ifeq ($(enable_grub_pe2elf), yes) bin_UTILITIES += grub-pe2elf +endif + grub_pe2elf_SOURCES = util/grub-pe2elf.c util/misc.c CLEANFILES += grub-pe2elf$(EXEEXT) grub_pe2elf-util_grub_pe2elf.o grub_pe2elf-util_misc.o MOSTLYCLEANFILES += grub_pe2elf-util_grub_pe2elf.d grub_pe2elf-util_misc.d @@ -493,7 +496,11 @@ CLEANFILES += update-grub_lib %: util/grub.d/%.in config.status ./config.status --file=$@:$< chmod +x $@ -update-grub_SCRIPTS = 00_header 10_linux 10_hurd 10_windows 30_os-prober 40_custom +update-grub_SCRIPTS = 00_header 10_linux 10_hurd 30_os-prober 40_custom +ifeq ($(target_os), cygwin) +update-grub_SCRIPTS += 10_windows +endif + CLEANFILES += $(update-grub_SCRIPTS) update-grub_DATA += util/grub.d/README diff --git a/conf/common.rmk b/conf/common.rmk index 3d674a68c..95859f708 100644 --- a/conf/common.rmk +++ b/conf/common.rmk @@ -100,7 +100,10 @@ grub_editenv_SOURCES = util/grub-editenv.c lib/envblk.c util/misc.c kern/misc.c CLEANFILES += grub-editenv # for grub-pe2elf +ifeq ($(enable_grub_pe2elf), yes) bin_UTILITIES += grub-pe2elf +endif + grub_pe2elf_SOURCES = util/grub-pe2elf.c util/misc.c CLEANFILES += grub-pe2elf @@ -120,7 +123,11 @@ CLEANFILES += update-grub_lib %: util/grub.d/%.in config.status ./config.status --file=$@:$< chmod +x $@ -update-grub_SCRIPTS = 00_header 10_linux 10_hurd 10_windows 30_os-prober 40_custom +update-grub_SCRIPTS = 00_header 10_linux 10_hurd 30_os-prober 40_custom +ifeq ($(target_os), cygwin) +update-grub_SCRIPTS += 10_windows +endif + CLEANFILES += $(update-grub_SCRIPTS) update-grub_DATA += util/grub.d/README diff --git a/configure b/configure index 69509d603..7c070af21 100644 --- a/configure +++ b/configure @@ -702,6 +702,7 @@ MODULE_LDFLAGS LIBCURSES enable_grub_emu enable_grub_fstest +enable_grub_pe2elf LIBOBJS LTLIBOBJS' ac_subst_files='' @@ -1300,6 +1301,8 @@ Optional Features: --enable-grub-emu build and install the `grub-emu' debugging utility --enable-grub-fstest build and install the `grub-fstest' debugging utility + --enable-grub-pe2elf build and install the `grub-pe2elf' conversion + utility Optional Packages: --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] @@ -1993,6 +1996,7 @@ esac + # # Checks for build programs. # @@ -5901,9 +5905,10 @@ echo "${ECHO_T}$TARGET_IMG_LDFLAGS_AC" >&6; } # For platforms where ELF is not the default link format. { echo "$as_me:$LINENO: checking for command to convert module to ELF format" >&5 echo $ECHO_N "checking for command to convert module to ELF format... $ECHO_C" >&6; } -if test "$host_os" = cygwin; then - TARGET_OBJ2ELF='grub-pe2elf.exe' -fi +case "${host_os}:${target_os}" in + cygwin:cygwin) TARGET_OBJ2ELF='grub-pe2elf' ;; + *) ;; +esac { echo "$as_me:$LINENO: result: $TARGET_OBJ2ELF" >&5 echo "${ECHO_T}$TARGET_OBJ2ELF" >&6; } @@ -8363,6 +8368,13 @@ fi +# Check whether --enable-grub-pe2elf was given. +if test "${enable_grub_pe2elf+set}" = set; then + enableval=$enable_grub_pe2elf; +fi + + + # Output files. ac_config_links="$ac_config_links include/grub/cpu:include/grub/$target_cpu include/grub/machine:include/grub/$target_cpu/$platform" @@ -9083,11 +9095,12 @@ MODULE_LDFLAGS!$MODULE_LDFLAGS$ac_delim LIBCURSES!$LIBCURSES$ac_delim enable_grub_emu!$enable_grub_emu$ac_delim enable_grub_fstest!$enable_grub_fstest$ac_delim +enable_grub_pe2elf!$enable_grub_pe2elf$ac_delim LIBOBJS!$LIBOBJS$ac_delim LTLIBOBJS!$LTLIBOBJS$ac_delim _ACEOF - if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 89; then + if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 90; 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 7a5938a38..f561b8bb0 100644 --- a/configure.ac +++ b/configure.ac @@ -100,6 +100,7 @@ case "$target_cpu" in esac AC_SUBST(target_cpu) +AC_SUBST(target_os) AC_SUBST(platform) # @@ -206,9 +207,10 @@ AC_MSG_RESULT([$TARGET_IMG_LDFLAGS_AC]) # For platforms where ELF is not the default link format. AC_MSG_CHECKING([for command to convert module to ELF format]) -if test "$host_os" = cygwin; then - TARGET_OBJ2ELF='grub-pe2elf.exe' -fi +case "${host_os}:${target_os}" in + cygwin:cygwin) TARGET_OBJ2ELF='grub-pe2elf' ;; + *) ;; +esac AC_SUBST(TARGET_OBJ2ELF) AC_MSG_RESULT([$TARGET_OBJ2ELF]) @@ -385,6 +387,11 @@ AC_ARG_ENABLE([grub-fstest], [build and install the `grub-fstest' debugging utility])]) AC_SUBST([enable_grub_fstest]) +AC_ARG_ENABLE([grub-pe2elf], + [AS_HELP_STRING([--enable-grub-pe2elf], + [build and install the `grub-pe2elf' conversion utility])]) +AC_SUBST([enable_grub_pe2elf]) + # Output files. AC_CONFIG_LINKS([include/grub/cpu:include/grub/$target_cpu include/grub/machine:include/grub/$target_cpu/$platform])