]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-04-13 Robert Millan <rmh@aybabtu.com>
authorrobertmh <robertmh@localhost>
Sun, 13 Apr 2008 10:55:19 +0000 (10:55 +0000)
committerrobertmh <robertmh@localhost>
Sun, 13 Apr 2008 10:55:19 +0000 (10:55 +0000)
        * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
        * genmk.rb (partmap): New variable.
        (CLEANFILES, PARTMAPFILES): Add #{partmap}.
        (#{partmap}): New target rule.
        * genpartmaplist.sh: New file.
        * Makefile.in (pkglib_DATA): Add partmap.lst.
        (partmap.lst): New target rule.
        * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
        modules (including all partition maps), instead of preloading them.

ChangeLog
Makefile.in
gendistlist.sh
genmk.rb
util/i386/pc/grub-mkrescue.in

index 88fcf7b862301170cb11856d7a08609e116d2045..76fac84115394af0d4b0ba71dc37fcf632a4f23b 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+2008-04-13  Robert Millan  <rmh@aybabtu.com>
+
+       * gendistlist.sh (EXTRA_DISTFILES): Add `genpartmaplist.sh'.
+       * genmk.rb (partmap): New variable.
+       (CLEANFILES, PARTMAPFILES): Add #{partmap}.
+       (#{partmap}): New target rule.
+       * genpartmaplist.sh: New file.
+       * Makefile.in (pkglib_DATA): Add partmap.lst.
+       (partmap.lst): New target rule.
+       * util/i386/pc/grub-mkrescue.in: Generate grub.cfg that loads needed
+       modules (including all partition maps), instead of preloading them.
+
 2007-04-13  Fabian Greffrath  <fabian.greffrath@web.de>
 
        * util/grub.d/30_os-prober.in: New script. Use `os-prober' and
index c2f432ff3776281584dc491a420b435627063791..afe53a3bc8718b9edd1f6cd0efeddd65e14a7e2c 100644 (file)
@@ -123,7 +123,7 @@ include $(srcdir)/conf/$(target_cpu)-$(platform).mk
 ### General targets.
 
 CLEANFILES += $(pkglib_DATA) $(pkgdata_DATA)
-pkglib_DATA += moddep.lst command.lst fs.lst
+pkglib_DATA += moddep.lst command.lst fs.lst partmap.lst
 moddep.lst: $(DEFSYMFILES) $(UNDSYMFILES) genmoddep.awk
        cat $(DEFSYMFILES) /dev/null \
          | $(AWK) -f $(srcdir)/genmoddep.awk $(UNDSYMFILES) > $@ \
@@ -135,6 +135,9 @@ command.lst: $(COMMANDFILES)
 fs.lst: $(FSFILES)
        cat $^ /dev/null | sort > $@
 
+partmap.lst: $(PARTMAPFILES)
+       cat $^ /dev/null | sort > $@
+
 ifeq (, $(UNIFONT_HEX))
 else
 pkgdata_DATA += unicode.pff ascii.pff
index f89365a1a12c4dba94ddd4f192749780a3f403fe..4c648aa903ee8212ac456d747e92c83bc3205305 100644 (file)
@@ -1,6 +1,6 @@
 #! /bin/sh
 #
-# Copyright (C) 2005  Free Software Foundation, Inc.
+# Copyright (C) 2005, 2008  Free Software Foundation, Inc.
 #
 # This gendistlist.sh is free software; the author
 # gives unlimited permission to copy and/or distribute it,
@@ -16,7 +16,7 @@
 EXTRA_DISTFILES="AUTHORS COPYING ChangeLog DISTLIST INSTALL NEWS README \
        THANKS TODO Makefile.in aclocal.m4 autogen.sh config.guess \
        config.h.in config.sub configure configure.ac gencmdlist.sh \
-       gendistlist.sh genfslist.sh genkernsyms.sh genmk.rb \
+       gendistlist.sh genfslist.sh genpartmaplist.sh genkernsyms.sh genmk.rb \
        genmodsrc.sh gensymlist.sh install-sh mkinstalldirs stamp-h.in"
 
 DISTDIRS="boot commands conf disk font fs hello include io kern loader \
index d43244dea28271562560bb49c70a24b777cc0a3c..9faea5aadc4f100488458c8bcd3b4ae129947f54 100644 (file)
--- a/genmk.rb
+++ b/genmk.rb
@@ -141,6 +141,7 @@ endif
       fake_obj = File.basename(src).suffix('o')
       command = 'cmd-' + obj.suffix('lst')
       fs = 'fs-' + obj.suffix('lst')
+      partmap = 'partmap-' + obj.suffix('lst')
       dep = deps[i]
       flag = if /\.c$/ =~ src then 'CFLAGS' else 'ASFLAGS' end
       extra_flags = if /\.S$/ =~ src then '-DASM_FILE=1' else '' end
@@ -150,9 +151,10 @@ endif
        $(TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) #{extra_flags} $(TARGET_#{flag}) $(#{prefix}_#{flag}) -MD -c -o $@ $<
 -include #{dep}
 
-CLEANFILES += #{command} #{fs}
+CLEANFILES += #{command} #{fs} #{partmap}
 COMMANDFILES += #{command}
 FSFILES += #{fs}
+PARTMAPFILES += #{partmap}
 
 #{command}: #{src} $(#{src}_DEPENDENCIES) gencmdlist.sh
        set -e; \
@@ -164,6 +166,11 @@ FSFILES += #{fs}
          $(TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) $(TARGET_#{flag}) $(#{prefix}_#{flag}) -E $< \
          | sh $(srcdir)/genfslist.sh #{symbolic_name} > $@ || (rm -f $@; exit 1)
 
+#{partmap}: #{src} $(#{src}_DEPENDENCIES) genpartmaplist.sh
+       set -e; \
+         $(TARGET_CC) -I#{dir} -I$(srcdir)/#{dir} $(TARGET_CPPFLAGS) $(TARGET_#{flag}) $(#{prefix}_#{flag}) -E $< \
+         | sh $(srcdir)/genpartmaplist.sh #{symbolic_name} > $@ || (rm -f $@; exit 1)
+
 
 "
     end.join('')
index 620c0f0936c584d83c3201d55daa2b21217cc869..53bf8f652dc145d0592aff1c0401b299303221ee 100644 (file)
@@ -109,6 +109,11 @@ cp ${input_dir}/*.mod \
   ${input_dir}/command.lst ${input_dir}/moddep.lst ${input_dir}/fs.lst \
   ${aux_dir}/boot/grub/
 
+modules="biosdisk `cat ${input_dir}/partmap.lst` ${modules}"
+for i in ${modules} ; do
+  echo "insmod $i"
+done > ${aux_dir}/boot/grub/grub.cfg
+
 if test "x$overlay" = x ; then : ; else
   cp -dpR ${overlay}/* ${aux_dir}/
 fi
@@ -121,7 +126,7 @@ if [ "x${image_type}" = "xfloppy" ] ; then
 
   # build core.img
   core_img=`mktemp`
-  ${grub_mkimage} -d ${input_dir}/ -m ${memdisk_img} -o ${core_img} memdisk cpio biosdisk ${modules}
+  ${grub_mkimage} -d ${input_dir}/ -m ${memdisk_img} -o ${core_img} memdisk cpio
   rm -f ${memdisk_img}
 
   # build floppy image
@@ -130,7 +135,7 @@ if [ "x${image_type}" = "xfloppy" ] ; then
 else
   # build core.img
   core_img=`mktemp`
-  ${grub_mkimage} -d ${input_dir}/ -o ${core_img} biosdisk iso9660 ${modules}
+  ${grub_mkimage} -d ${input_dir}/ -o ${core_img} biosdisk iso9660
 
   # build grub_eltorito image
   cat ${input_dir}/cdboot.img ${core_img} > ${aux_dir}/boot/grub/grub_eltorito