From 50ceeb7cb5fd5477da1bd9f724d936c8852e4ef6 Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Sun, 8 Nov 2009 01:49:15 +0100 Subject: [PATCH 01/49] 2009-11-04 Felix Zielcke * util//grub-mkconfig_lib.in (bindir): New variable. (grub_mkrelpath): Likewise. Properly set path variable. Use ${grub_mkrelpath} instead of calling it directly. 2009-11-02 Felix Zielcke * util/probe.c (probe): Make the file path relative to its root. Change a info message to use the GRUB path. Enable again the check if we can read the file with GRUB facilities. 2009-11-01 Felix Zielcke * util/grub-mkrelpath.c: New file. * conf/common.rmk (bin_UTILITIES): Add grub-mkrelpath. (grub_mkrelpath_SOURCES): New variable. * include/grub/util/misc.h: New function prototype. * util/misc.c (make_system_path_relative_to_its_root): New function. * util/grub-mkconfig_lib.in (make_system_path_relative_to_its_root): Use grub-mkrelpath. --- ChangeLog.mkrelpath | 23 +++++++++ conf/common.rmk | 4 ++ include/grub/util/misc.h | 5 +- util/grub-mkconfig_lib.in | 46 ++---------------- util/grub-mkrelpath.c | 99 +++++++++++++++++++++++++++++++++++++++ util/grub-probe.c | 11 ++--- util/misc.c | 81 ++++++++++++++++++++++++++++++++ 7 files changed, 219 insertions(+), 50 deletions(-) create mode 100644 ChangeLog.mkrelpath create mode 100644 util/grub-mkrelpath.c diff --git a/ChangeLog.mkrelpath b/ChangeLog.mkrelpath new file mode 100644 index 000000000..e210397ed --- /dev/null +++ b/ChangeLog.mkrelpath @@ -0,0 +1,23 @@ +2009-11-04 Felix Zielcke + + * util//grub-mkconfig_lib.in (bindir): New variable. + (grub_mkrelpath): Likewise. + Properly set path variable. Use ${grub_mkrelpath} instead of + calling it directly. + +2009-11-02 Felix Zielcke + + * util/probe.c (probe): Make the file path relative to its root. + Change a info message to use the GRUB path. Enable again the + check if we can read the file with GRUB facilities. + +2009-11-01 Felix Zielcke + + * util/grub-mkrelpath.c: New file. + * conf/common.rmk (bin_UTILITIES): Add grub-mkrelpath. + (grub_mkrelpath_SOURCES): New variable. + * include/grub/util/misc.h: New function prototype. + * util/misc.c (make_system_path_relative_to_its_root): New function. + + * util/grub-mkconfig_lib.in (make_system_path_relative_to_its_root): + Use grub-mkrelpath. diff --git a/conf/common.rmk b/conf/common.rmk index c1f0bbdcf..175611f62 100644 --- a/conf/common.rmk +++ b/conf/common.rmk @@ -57,6 +57,10 @@ grub_mkfont_CFLAGS = $(freetype_cflags) grub_mkfont_LDFLAGS = $(freetype_libs) endif +# For grub-mkrelpath. +bin_UTILITIES += grub-mkrelpath +grub_mkrelpath_SOURCES = util/grub-mkrelpath.c util/misc.c + # For the parser. grub_script.tab.c grub_script.tab.h: script/sh/parser.y $(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/script/sh/parser.y diff --git a/include/grub/util/misc.h b/include/grub/util/misc.h index 6a93ab044..d0184d416 100644 --- a/include/grub/util/misc.h +++ b/include/grub/util/misc.h @@ -1,6 +1,6 @@ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2002,2003,2005,2006,2007,2008 Free Software Foundation, Inc. + * Copyright (C) 2002,2003,2005,2006,2007,2008,2009 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -76,4 +76,7 @@ grub_int64_t grub_util_get_disk_size (char *name); #endif + +char *make_system_path_relative_to_its_root (const char *path); + #endif /* ! GRUB_UTIL_MISC_HEADER */ diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in index bb30cc475..5b5dfd42a 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -20,10 +20,12 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ datarootdir=@datarootdir@ datadir=@datadir@ +bindir=@bindir@ sbindir=@sbindir@ pkgdatadir=${datadir}/`echo @PACKAGE_TARNAME@ | sed "${transform}"` grub_probe=${sbindir}/`echo grub-probe | sed ${transform}` +grub_mkrelpath=${bindir}/`echo grub-mkrelpath | sed ${transform}` grub_warn () { @@ -32,49 +34,7 @@ grub_warn () make_system_path_relative_to_its_root () { - path=$1 - # abort if file doesn't exist - if test -e $path ; then : ;else - return 1 - fi - - # canonicalize - if path=`readlink -f $path` ; then : ; else - return 1 - fi - - # if not a directory, climb up to the directory containing it - if test -d $path ; then - dir=$path - else - dir=`echo $path | sed -e "s,/[^/]*$,,g"` - fi - - num=`stat -c %d $dir` - - # this loop sets $dir to the root directory of the filesystem we're inspecting - while : ; do - parent=`readlink -f $dir/..` - if [ "x`stat -c %d $parent`" = "x$num" ] ; then : ; else - # $parent is another filesystem; we found it. - break - fi - if [ "x$dir" = "x/" ] ; then - # / is our root. - break - fi - dir=$parent - done - - # This function never prints trailing slashes (so that its output can be - # appended a slash unconditionally). Each slash in $dir is considered a - # preceding slash, and therefore the root directory is an empty string. - if [ "$dir" = "/" ] ; then - dir="" - fi - - # XXX: This fails if $dir contains ','. - path=`echo "$path" | sed -e "s,^$dir,,g"` || return 1 + path="`${grub_mkrelpath} $1`" case "`uname 2>/dev/null`" in CYGWIN*) diff --git a/util/grub-mkrelpath.c b/util/grub-mkrelpath.c new file mode 100644 index 000000000..3deb4c412 --- /dev/null +++ b/util/grub-mkrelpath.c @@ -0,0 +1,99 @@ +/* grub-mkrelpath.c - make a system path relative to its root */ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2009 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GRUB is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GRUB. If not, see . + */ + +#include +#include + +static struct option options[] = + { + {"help", no_argument, 0, 'h'}, + {"version", no_argument, 0, 'V'}, + }; + +static void +usage (int status) +{ + if (status) + fprintf (stderr, "Try ``grub-mkrelpath --help'' for more information.\n"); + else + printf ("\ +Usage: grub-mkrelpath [OPTIONS] PATH\n\ +\n\ +Make a system path relative to it's root.\n\ +\n\ +Options:\n\ + -h, --help display this message and exit\n\ + -V, --version print version information and exit\n\ +\n\ +Report bugs to <%s>.\n", PACKAGE_BUGREPORT); + + exit (status); +} + +int +main (int argc, char *argv[]) +{ + char *argument, *relpath; + + progname = "grub-mkrelpath"; + + /* Check for options. */ + while (1) + { + int c = getopt_long (argc, argv, "hV", options, 0); + + if (c == -1) + break; + else + switch (c) + { + case 'h': + usage (0); + break; + + case 'V': + printf ("%s (%s) %s\n", progname, PACKAGE_NAME, PACKAGE_VERSION); + return 0; + + default: + usage (1); + break; + } + } + + if (optind >= argc) + { + fprintf (stderr, "No path is specified.\n"); + usage (1); + } + + if (optind + 1 != argc) + { + fprintf (stderr, "Unknown extra argument `%s'.\n", argv[optind + 1]); + usage (1); + } + + argument = argv[optind]; + + relpath = make_system_path_relative_to_its_root (argument); + printf ("%s\n", relpath); + free (relpath); + + return 0; +} diff --git a/util/grub-probe.c b/util/grub-probe.c index 4e3f96451..051a38c72 100644 --- a/util/grub-probe.c +++ b/util/grub-probe.c @@ -235,9 +235,6 @@ probe (const char *path, char *device_name) if (print == PRINT_FS) { - /* FIXME: `path' can't be used to read a file via GRUB facilities, - because it's not relative to its root. */ -#if 0 struct stat st; stat (path, &st); @@ -247,11 +244,14 @@ probe (const char *path, char *device_name) /* Regular file. Verify that we can read it properly. */ grub_file_t file; + char *rel_path; grub_util_info ("reading %s via OS facilities", path); filebuf_via_sys = grub_util_read_image (path); - grub_util_info ("reading %s via GRUB facilities", path); - asprintf (&grub_path, "(%s)%s", drive_name, path); + rel_path = make_system_path_relative_to_its_root (path); + asprintf (&grub_path, "(%s)%s", drive_name, rel_path); + free (rel_path); + grub_util_info ("reading %s via GRUB facilities", grub_path); file = grub_file_open (grub_path); filebuf_via_grub = xmalloc (file->size); grub_file_read (file, filebuf_via_grub, file->size); @@ -261,7 +261,6 @@ probe (const char *path, char *device_name) if (memcmp (filebuf_via_grub, filebuf_via_sys, file->size)) grub_util_error ("files differ"); } -#endif printf ("%s\n", fs->name); } diff --git a/util/misc.c b/util/misc.c index 37e75311e..e4d68e33f 100644 --- a/util/misc.c +++ b/util/misc.c @@ -18,10 +18,12 @@ #include +#include #include #include #include #include +#include #include #include #include @@ -449,3 +451,82 @@ fail: } #endif /* __MINGW32__ */ + +/* This function never prints trailing slashes (so that its output + can be appended a slash unconditionally). */ +char * +make_system_path_relative_to_its_root (const char *path) +{ + struct stat st; + char *p, *buf, *buf2, *buf3; + uintptr_t offset = 0; + dev_t num; + size_t len; + + /* canonicalize. */ + p = realpath (path, NULL); + + if (p == NULL) + { + if (errno != EINVAL) + grub_util_error ("failed to get realpath of %s", path); + else + grub_util_error ("realpath not supporting (path, NULL)"); + } + len = strlen (p) + 1; + buf = strdup (p); + free (p); + + if (stat (buf, &st) < 0) + grub_util_error ("can not stat %s: %s", buf, strerror (errno)); + + buf2 = strdup (buf); + num = st.st_dev; + + /* This loop sets offset to the number of chars of the root + directory we're inspecting. */ + while (1) + { + p = strrchr (buf, '/'); + if (p == NULL) + /* This should never happen. */ + grub_util_error ("FIXME: no / in buf. (make_system_path_relative_to_its_root)"); + if (p != buf) + *p = 0; + else + *++p = 0; + + if (stat (buf, &st) < 0) + grub_util_error ("can not stat %s: %s", buf, strerror (errno)); + + /* buf is another filesystem; we found it. */ + if (st.st_dev != num) + break; + + offset = p - buf; + /* offset == 1 means root directory. */ + if (offset == 1) + { + free (buf); + len = strlen (buf2); + while (buf2[len - 1] == '/' && len > 1) + { + buf2[len - 1] = '\0'; + len--; + } + return buf2; + } + } + free (buf); + buf3 = strdup (buf2 + offset); + free (buf2); + + len = strlen (buf3); + while (buf2[len - 1] == '/' && len > 1) + { + buf2[len - 1] = '\0'; + len--; + } + + return buf3; +} From 9d4bfc0c95701f59bc4f75150ec26db0d7efc90a Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Mon, 9 Nov 2009 17:19:59 +0100 Subject: [PATCH 02/49] Fix a typo in ChangeLog.mkrelpath. Thanks Robert Millan. --- ChangeLog.mkrelpath | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog.mkrelpath b/ChangeLog.mkrelpath index e210397ed..1b7b2b851 100644 --- a/ChangeLog.mkrelpath +++ b/ChangeLog.mkrelpath @@ -1,6 +1,6 @@ 2009-11-04 Felix Zielcke - * util//grub-mkconfig_lib.in (bindir): New variable. + * util/grub-mkconfig_lib.in (bindir): New variable. (grub_mkrelpath): Likewise. Properly set path variable. Use ${grub_mkrelpath} instead of calling it directly. From cdfc5ad1b3b5dfde3448c641e2cd43d8f917c5e8 Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Wed, 11 Nov 2009 21:10:58 +0100 Subject: [PATCH 03/49] 2009-11-11 Felix Zielcke * util/i386/pc/grub-setup.c (setup): Make core.img path relative to its root. --- ChangeLog.mkrelpath | 5 +++++ autogen.sh | 0 gendistlist.sh | 0 util/i386/pc/grub-setup.c | 6 ++++-- 4 files changed, 9 insertions(+), 2 deletions(-) mode change 100644 => 100755 autogen.sh mode change 100644 => 100755 gendistlist.sh diff --git a/ChangeLog.mkrelpath b/ChangeLog.mkrelpath index 1b7b2b851..3cd0d8bd2 100644 --- a/ChangeLog.mkrelpath +++ b/ChangeLog.mkrelpath @@ -1,3 +1,8 @@ +2009-11-11 Felix Zielcke + + * util/i386/pc/grub-setup.c (setup): Make core.img path relative + to its root. + 2009-11-04 Felix Zielcke * util/grub-mkconfig_lib.in (bindir): New variable. diff --git a/autogen.sh b/autogen.sh old mode 100644 new mode 100755 diff --git a/gendistlist.sh b/gendistlist.sh old mode 100644 new mode 100755 diff --git a/util/i386/pc/grub-setup.c b/util/i386/pc/grub-setup.c index c536be0c4..0cc4fc5ed 100644 --- a/util/i386/pc/grub-setup.c +++ b/util/i386/pc/grub-setup.c @@ -88,7 +88,7 @@ setup (const char *dir, const char *boot_file, const char *core_file, const char *root, const char *dest, int must_embed, int force, int fs_probe) { - char *boot_path, *core_path, *core_path_dev; + char *boot_path, *core_path, *core_path_dev, *core_path_dev_full; char *boot_img, *core_img; size_t boot_size, core_size; grub_uint16_t core_sectors; @@ -426,7 +426,9 @@ unable_to_embed: /* Make sure that GRUB reads the identical image as the OS. */ tmp_img = xmalloc (core_size); - core_path_dev = grub_util_get_path (dir, core_file); + core_path_dev_full = grub_util_get_path (dir, core_file); + core_path_dev = make_system_path_relative_to_its_root (core_path_dev_full); + free (core_path_dev_full); /* It is a Good Thing to sync two times. */ sync (); From 76b383bbbe876d4200f82af25791a1553b0951c8 Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Wed, 11 Nov 2009 22:20:03 +0100 Subject: [PATCH 04/49] 2009-11-11 Felix Zielcke * util/grub-probe.c (probe): Abort with an error if file can't be opened via GRUB facilities. --- ChangeLog.mkrelpath | 5 +++++ util/grub-probe.c | 2 ++ 2 files changed, 7 insertions(+) diff --git a/ChangeLog.mkrelpath b/ChangeLog.mkrelpath index 3cd0d8bd2..d24262db5 100644 --- a/ChangeLog.mkrelpath +++ b/ChangeLog.mkrelpath @@ -1,3 +1,8 @@ +2009-11-11 Felix Zielcke + + * util/grub-probe.c (probe): Abort with an error if file can't be + opened via GRUB facilities. + 2009-11-11 Felix Zielcke * util/i386/pc/grub-setup.c (setup): Make core.img path relative diff --git a/util/grub-probe.c b/util/grub-probe.c index 051a38c72..1594d0dcb 100644 --- a/util/grub-probe.c +++ b/util/grub-probe.c @@ -253,6 +253,8 @@ probe (const char *path, char *device_name) free (rel_path); grub_util_info ("reading %s via GRUB facilities", grub_path); file = grub_file_open (grub_path); + if (! file) + grub_util_error ("can not open %s via GRUB facilities", grub_path); filebuf_via_grub = xmalloc (file->size); grub_file_read (file, filebuf_via_grub, file->size); From 203ffbfa31729f828a0564538499613e07561861 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Fri, 13 Nov 2009 20:39:33 +0000 Subject: [PATCH 05/49] Adds gettext support in Grub. Building system needs to be improved and maybe userland utilites improved. YYYY-MM-DD Carles Pina i Estany * Makefile.in: Add uptrans target to help to update .pot file * conf/common.rmk: Add grub-gettext_lib target, dependency and SOURCES, CFLAGS, LDFLAGS * kern/misc.c: Define grub_gettext symbol and add implement grub_gettext_dummy function * po/TODO: Temporary file with instructions of what Makefile.in will do * po/ca.po: Catalan translation stub * include/grub/misc.h: Define macro _(char *s). Declare grub_gettext_dummy and grub_gettext * gettext/gettext.c: New file with gettext implementation * normal/menu.c (print_message): add _( ) to some strings * util/grub.d/10_linux.in: include grub-gettext_lib file. For the Linux menuentry, call eval_gettext * util/grub.d/00_header.in: add locale_prefix and gettext locale detection and setting up the access to the mo directory * util/grub-mkconfig_lib.in: add get_locale_lang * util/grub-gettext_lib.in: new file --- conf/common.rmk | 13 +- gettext/gettext.c | 285 ++++++++++++++++++++++++++++++++++++++ include/grub/misc.h | 7 +- kern/misc.c | 9 ++ normal/menu_text.c | 4 +- util/grub-gettext_lib.in | 23 +++ util/grub-mkconfig_lib.in | 11 ++ util/grub.d/00_header.in | 16 +++ util/grub.d/10_linux.in | 8 +- 9 files changed, 368 insertions(+), 8 deletions(-) create mode 100644 gettext/gettext.c create mode 100644 util/grub-gettext_lib.in diff --git a/conf/common.rmk b/conf/common.rmk index a66bd97fd..deb18372b 100644 --- a/conf/common.rmk +++ b/conf/common.rmk @@ -162,6 +162,12 @@ update-grub_lib: util/update-grub_lib.in config.status lib_SCRIPTS += update-grub_lib CLEANFILES += update-grub_lib +grub-gettext_lib: util/grub-gettext_lib.in config.status + ./config.status --file=$@:$< + chmod +x $@ +lib_DATA += grub-gettext_lib +CLEANFILES += grub-gettext_lib + %: util/grub.d/%.in config.status ./config.status --file=$@:$< chmod +x $@ @@ -178,7 +184,7 @@ grub-mkconfig_DATA += util/grub.d/README pkglib_MODULES += fshelp.mod fat.mod ufs1.mod ufs2.mod ext2.mod ntfs.mod \ ntfscomp.mod minix.mod hfs.mod jfs.mod iso9660.mod xfs.mod \ affs.mod sfs.mod hfsplus.mod reiserfs.mod cpio.mod tar.mod \ - udf.mod afs.mod afs_be.mod befs.mod befs_be.mod + udf.mod afs.mod afs_be.mod befs.mod befs_be.mod gettext.mod # For fshelp.mod. fshelp_mod_SOURCES = fs/fshelp.c @@ -609,6 +615,11 @@ bufio_mod_SOURCES = io/bufio.c bufio_mod_CFLAGS = $(COMMON_CFLAGS) bufio_mod_LDFLAGS = $(COMMON_LDFLAGS) +# For gettext.mod. +gettext_mod_SOURCES = gettext/gettext.c +gettext_mod_CFLAGS = $(COMMON_CFLAGS) +gettext_mod_LDFLAGS = $(COMMON_LDFLAGS) + # Misc. pkglib_MODULES += xnu_uuid.mod diff --git a/gettext/gettext.c b/gettext/gettext.c new file mode 100644 index 000000000..089f59db4 --- /dev/null +++ b/gettext/gettext.c @@ -0,0 +1,285 @@ +/* gettext.c - gettext module */ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2009 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GRUB is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GRUB. If not, see . + */ + +#include +#include +#include +#include +#include +#include +#include +#include + +/* + .mo file information from: + http://www.gnu.org/software/autoconf/manual/gettext/MO-Files.html . +*/ + + +static grub_file_t grub_mofile_open (const char *name); +static grub_file_t fd_mo; + +static int grub_gettext_offsetoriginal; +static int grub_gettext_max; + +static const char* (*grub_gettext_original) (const char *s); + +#define GETTEXT_MAGIC_NUMBER 0 +#define GETTEXT_FILE_FORMAT 4 +#define GETTEXT_NUMBER_OF_STRINGS 8 +#define GETTEXT_OFFSET_ORIGINAL 12 +#define GETTEXT_OFFSET_TRANSLATION 16 + +#define MO_MAGIC_NUMBER 0x950412de + +static grub_uint32_t +grub_gettext_get_info (int offset) +{ + grub_uint32_t value; + + grub_file_seek (fd_mo, offset); + grub_file_read (fd_mo, (char*) &value, 4); + value = grub_cpu_to_le32 (value); + return value; +} + +static void +grub_gettext_getstring_from_offset (grub_uint32_t offset, grub_uint32_t length, char *translation) +{ + grub_file_seek (fd_mo, offset); + grub_file_read (fd_mo, translation, length); + translation[length] = '\0'; +} + +static char* +grub_gettext_gettranslation_from_position (int position) +{ + int offsettranslation; + int internal_position; + grub_uint32_t length, offset; + char *translation; + + offsettranslation = grub_gettext_get_info (GETTEXT_OFFSET_TRANSLATION); + + internal_position = offsettranslation + position * 8; + + grub_file_seek (fd_mo, internal_position); + grub_file_read (fd_mo, (char*) &length, 4); + length = grub_cpu_to_le32 (length); + + grub_file_seek (fd_mo, internal_position + 4), + grub_file_read (fd_mo, (char*) &offset, 4); + offset = grub_cpu_to_le32 (offset); + + translation = grub_malloc(length + 1); + grub_gettext_getstring_from_offset (offset, length, translation); + + return translation; +} + +static char* +grub_gettext_getstring_from_position (int position) +{ + int internal_position; + int length, offset; + char *original; + + /* Get position for string i. */ + internal_position = grub_gettext_offsetoriginal + (position * 8); + + /* Get the length of the string i. */ + grub_file_seek (fd_mo, internal_position); + grub_file_read (fd_mo, (char *) &length, 4); + + /* Get the offset of the string i. */ + grub_file_seek (fd_mo, internal_position + 4); + grub_file_read (fd_mo, (char *) &offset, 4); + + /* Get the string i. */ + original = grub_malloc (length + 1); + grub_gettext_getstring_from_offset (offset, length, original); + + return original; +} + +static const char* +grub_gettext_translate (const char *orig) +{ + char *current_string; + char *ret; + + int min,max,current; + + if (fd_mo == 0) + return orig; + + min = 0; + max = grub_gettext_max; + + current = (max + min) / 2; + + while (current != min && current != max) + { + current_string = grub_gettext_getstring_from_position (current); + + /* Search by bisection. */ + if (grub_strcmp (current_string, orig) < 0) + { + grub_free(current_string); + min=current; + } + else if (grub_strcmp (current_string, orig) > 0) + { + grub_free(current_string); + max=current; + } + else if (grub_strcmp (current_string, orig) == 0) + { + grub_free(current_string); + return grub_gettext_gettranslation_from_position (current); + } + current = (max+min)/2; + } + + ret = grub_malloc(grub_strlen(orig) + 1); + grub_strcpy(ret,orig); + return ret; +} + +/* This is similar to grub_gzfile_open. */ +static grub_file_t +grub_mofile_open (const char *filename) +{ + int unsigned magic; + int version; + + /* Using fd_mo and not another variable because + it's needed for grub_gettext_get_info. */ + + fd_mo = grub_file_open (filename); + if (! fd_mo) + { + grub_error (GRUB_ERR_FILE_READ_ERROR, "Cannot read %s",filename); + return 0; + } + + magic = grub_gettext_get_info (GETTEXT_MAGIC_NUMBER); + + if (magic != MO_MAGIC_NUMBER) + { + grub_error (GRUB_ERR_BAD_FILE_TYPE, "mo: invalid mo file: %s", filename); + grub_file_close (fd_mo); + fd_mo = 0; + return 0; + } + + version = grub_gettext_get_info (GETTEXT_FILE_FORMAT); + + if (version != 0) + { + grub_error (GRUB_ERR_BAD_FILE_TYPE, "mo: invalid mo version in file: %s", filename); + fd_mo = 0; + return 0; + } + + /* + Do we want .mo.gz files? Then, the code: + file = grub_gzio_open (io, 0); // 0: transparent + if (! file) + { + grub_printf("Problems opening the file\n"); + grub_file_close (io); + return 0; + } + */ + + return fd_mo; +} + +static void +grub_gettext_init_ext (const char *lang) +{ + char *mo_file; + char *grub_prefix; + + grub_prefix = grub_env_get ("prefix"); + + fd_mo = 0; + + // mo_file e.g.: /boot/grub/locale/ca.mo + + mo_file = grub_malloc (grub_strlen (grub_prefix) + sizeof ("/locale/") + grub_strlen (lang) + sizeof(".mo")); + + // Warning: if changing some paths in the below line, change the grub_malloc + // contents below + + grub_sprintf (mo_file, "%s/locale/%s.mo", grub_prefix, lang); + grub_dprintf(" -------------- %s ",mo_file); + + fd_mo = grub_mofile_open(mo_file); + grub_free (mo_file); + + if (fd_mo) + { + grub_gettext_offsetoriginal = grub_gettext_get_info(GETTEXT_OFFSET_ORIGINAL); + grub_gettext_max = grub_gettext_get_info(GETTEXT_NUMBER_OF_STRINGS); + + grub_gettext_original = grub_gettext; + grub_gettext = grub_gettext_translate; + } +} + +static char* +grub_gettext_env_write_lang (struct grub_env_var *var __attribute__ ((unused)), + const char *val) +{ + grub_gettext_init_ext (val); + + return grub_strdup (val); +} + +GRUB_MOD_INIT(gettext) +{ + (void)mod; /* To stop warning. */ + + const char *lang; + + lang = grub_env_get ("lang"); + + grub_gettext_init_ext (lang); + + /* Testing: + grub_register_command ("_", grub_cmd_translate, GRUB_COMMAND_FLAG_BOTH, + "_", "internalization support trans", 0); + */ + + /* Reload .mo file information if lang changes. */ + grub_register_variable_hook ("lang", NULL, grub_gettext_env_write_lang); + + /* Preserve hooks after context changes. */ + grub_env_export ("lang"); +} + +GRUB_MOD_FINI(gettext) +{ + if (fd_mo != 0) + grub_file_close(fd_mo); + + grub_gettext = grub_gettext_original; +} diff --git a/include/grub/misc.h b/include/grub/misc.h index faa2d5c42..0a3406737 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -1,7 +1,7 @@ /* misc.h - prototypes for misc functions */ /* * GRUB -- GRand Unified Bootloader - * Copyright (C) 2002,2003,2005,2006,2007,2008,2009,2008 Free Software Foundation, Inc. + * Copyright (C) 2002,2003,2005,2006,2007,2008,2009,2008,2009 Free Software Foundation, Inc. * * GRUB is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -34,6 +34,8 @@ /* XXX: If grub_memmove is too slow, we must implement grub_memcpy. */ #define grub_memcpy(d,s,n) grub_memmove ((d), (s), (n)) +#define _(s) grub_gettext(s) + void *EXPORT_FUNC(grub_memmove) (void *dest, const void *src, grub_size_t n); char *EXPORT_FUNC(grub_strcpy) (char *dest, const char *src); char *EXPORT_FUNC(grub_strncpy) (char *dest, const char *src, int c); @@ -191,6 +193,9 @@ grub_ssize_t EXPORT_FUNC(grub_utf8_to_ucs4) (grub_uint32_t *dest, grub_uint64_t EXPORT_FUNC(grub_divmod64) (grub_uint64_t n, grub_uint32_t d, grub_uint32_t *r); +const char *EXPORT_FUNC(grub_gettext_dummy) (const char *s); +extern const char *(*EXPORT_VAR(grub_gettext)) (const char *s);// = grub_gettext_dummy; + #ifdef NEED_ENABLE_EXECUTE_STACK void EXPORT_FUNC(__enable_execute_stack) (void *addr); #endif diff --git a/kern/misc.c b/kern/misc.c index cacfbc753..827f864c4 100644 --- a/kern/misc.c +++ b/kern/misc.c @@ -30,6 +30,8 @@ grub_iswordseparator (int c) return (grub_isspace (c) || c == ',' || c == ';' || c == '|' || c == '&'); } +const char* (*grub_gettext) (const char *s) = grub_gettext_dummy; + void * grub_memmove (void *dest, const void *src, grub_size_t n) { @@ -984,6 +986,13 @@ grub_utf8_to_ucs4 (grub_uint32_t *dest, grub_size_t destsize, return p - dest; } +/* grub_gettext_dummy is not translating anything. */ +const char * +grub_gettext_dummy (const char *s) +{ + return s; +} + /* Abort GRUB. This function does not return. */ void grub_abort (void) diff --git a/normal/menu_text.c b/normal/menu_text.c index e0d96c47f..e757110c0 100644 --- a/normal/menu_text.c +++ b/normal/menu_text.c @@ -93,8 +93,8 @@ print_message (int nested, int edit) } else { - grub_printf ("\n\ - Use the %C and %C keys to select which entry is highlighted.\n", + grub_printf (_("\n\ + Use the %C and %C keys to select which entry is highlighted.\n"), (grub_uint32_t) GRUB_TERM_DISP_UP, (grub_uint32_t) GRUB_TERM_DISP_DOWN); grub_printf ("\ Press enter to boot the selected OS, \'e\' to edit the\n\ diff --git a/util/grub-gettext_lib.in b/util/grub-gettext_lib.in new file mode 100644 index 000000000..00d1bdd98 --- /dev/null +++ b/util/grub-gettext_lib.in @@ -0,0 +1,23 @@ +# Configuration of grub-gettext +# Copyright (C) 2009 Free Software Foundation, Inc. +# +# GRUB is free software: you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# GRUB is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with GRUB. If not, see . + +prefix=@prefix@ +exec_prefix=@exec_prefix@ +libdir=@libdir@ + +TEXTDOMAINDIR=@prefix@/share/locale +TEXTDOMAIN=grub +. gettext.sh diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in index bb30cc475..47e37f265 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -215,3 +215,14 @@ version_find_latest () done echo "$a" } + +get_locale_lang () +{ + lang="`echo ${LANG} | cut -d _ -f 1`" + if [ "x${lang}" = "x" ] ; then + return 1 + else + echo "${lang}" + return 0 + fi +} diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in index 9f421dc1c..fe1352883 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -22,6 +22,7 @@ prefix=@prefix@ exec_prefix=@exec_prefix@ libdir=@libdir@ grub_prefix=`echo /boot/grub | sed ${transform}` +locale_prefix="/usr/share/locale" # TODO: dynamic with exec_prefix ? . ${libdir}/grub/grub-mkconfig_lib @@ -100,6 +101,21 @@ EOF ;; esac +if test -e ${grub_prefix}/gettext.mod -a -d /usr/share/locale; then + # Make the locales accesible + prepare_grub_to_access_device `${grub_probe} --target=device ${locale_prefix}` + lang=`get_locale_lang` + grub_locale_prefix=`make_system_path_relative_to_its_root ${locale_prefix}` + cat << EOF +# Gettext variables and module +set locale_prefix=${grub_locale_prefix} +set lang=${lang} +insmod gettext +EOF +else + echo "gettext module or /usr/share/locale is not available" +fi + if [ "x${GRUB_HIDDEN_TIMEOUT}" != "x" ] ; then if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then verbose= diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in index f17955846..9cb39e41c 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -95,11 +95,11 @@ while [ "x$list" != "x" ] ; do linux_root_device_thisversion=${GRUB_DEVICE} fi - linux_entry "${OS}, with Linux ${version}" \ - "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" + linux_entry $eval_gettext ("${OS}, with Linux ${version}" \ + "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}") if [ "x${GRUB_DISABLE_LINUX_RECOVERY}" != "xtrue" ]; then - linux_entry "${OS}, with Linux ${version} (recovery mode)" \ - "single ${GRUB_CMDLINE_LINUX}" + linux_entry $eval_gettext ("${OS}, with Linux ${version} (recovery mode)" \ + "single ${GRUB_CMDLINE_LINUX}") fi list=`echo $list | tr ' ' '\n' | grep -vx $linux | tr '\n' ' '` From ad60dd3652b56b9dcf4aac738e69487748ecaffd Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Fri, 13 Nov 2009 23:08:55 +0100 Subject: [PATCH 06/49] 2009-11-13 Felix Zielcke * util/misc.c (make_system_path_relative_to_its_root): Fix access to a wrong variable. --- ChangeLog.mkrelpath | 5 +++++ util/misc.c | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/ChangeLog.mkrelpath b/ChangeLog.mkrelpath index d24262db5..75881f219 100644 --- a/ChangeLog.mkrelpath +++ b/ChangeLog.mkrelpath @@ -1,3 +1,8 @@ +2009-11-13 Felix Zielcke + + * util/misc.c (make_system_path_relative_to_its_root): Fix access + to a wrong variable. + 2009-11-11 Felix Zielcke * util/grub-probe.c (probe): Abort with an error if file can't be diff --git a/util/misc.c b/util/misc.c index e4d68e33f..979c363aa 100644 --- a/util/misc.c +++ b/util/misc.c @@ -522,9 +522,9 @@ make_system_path_relative_to_its_root (const char *path) free (buf2); len = strlen (buf3); - while (buf2[len - 1] == '/' && len > 1) + while (buf3[len - 1] == '/' && len > 1) { - buf2[len - 1] = '\0'; + buf3[len - 1] = '\0'; len--; } From 44883dfbd5d05c159cba64e903de5b3afb593123 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Thu, 19 Nov 2009 21:43:09 +0000 Subject: [PATCH 07/49] 2009-11-19 Carles Pina i Estany * include/grb/i18n_grub.h: same than i18n.h but for Grub Kernel. * include/grub/misc.h: includes i18n_grub.h. * normal/menu_text.c: gettize more strings. * po/POTFILES: Update with new file. * po/ca.po: New strings. --- include/grub/i18n_grub.h | 24 ++++++++++++++++++++++++ include/grub/misc.h | 2 -- normal/menu_text.c | 1 + po/POTFILES | 2 ++ po/ca.po | 11 ++++++++++- 5 files changed, 37 insertions(+), 3 deletions(-) create mode 100644 include/grub/i18n_grub.h diff --git a/include/grub/i18n_grub.h b/include/grub/i18n_grub.h new file mode 100644 index 000000000..ed3382568 --- /dev/null +++ b/include/grub/i18n_grub.h @@ -0,0 +1,24 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2009 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GRUB is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GRUB. If not, see . + */ + +#ifndef GRUB_I18N_GRUB_H +#define GRUB_I18N_GRUB_H 1 + +# define _(str) grub_gettext(str) + +#endif /* GRUB_I18N_GRUB_H */ diff --git a/include/grub/misc.h b/include/grub/misc.h index 0a3406737..bc725f9ca 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -34,8 +34,6 @@ /* XXX: If grub_memmove is too slow, we must implement grub_memcpy. */ #define grub_memcpy(d,s,n) grub_memmove ((d), (s), (n)) -#define _(s) grub_gettext(s) - void *EXPORT_FUNC(grub_memmove) (void *dest, const void *src, grub_size_t n); char *EXPORT_FUNC(grub_strcpy) (char *dest, const char *src); char *EXPORT_FUNC(grub_strncpy) (char *dest, const char *src, int c); diff --git a/normal/menu_text.c b/normal/menu_text.c index e757110c0..66a0bcfb4 100644 --- a/normal/menu_text.c +++ b/normal/menu_text.c @@ -25,6 +25,7 @@ #include #include #include +#include /* Time to delay after displaying an error message about a default/fallback entry failing to boot. */ diff --git a/po/POTFILES b/po/POTFILES index 5b1239a5e..c0fc40c30 100644 --- a/po/POTFILES +++ b/po/POTFILES @@ -10,3 +10,5 @@ util/mkisofs/multi.c util/mkisofs/rock.c util/mkisofs/tree.c util/mkisofs/write.c + +normal/menu_text.c diff --git a/po/ca.po b/po/ca.po index 3f9b0ac32..02cfe3751 100644 --- a/po/ca.po +++ b/po/ca.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU GRUB\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-11-19 00:16+0100\n" +"POT-Creation-Date: 2009-11-19 21:37+0000\n" "PO-Revision-Date: 2009-11-17 12:26+0100\n" "Last-Translator: Robert Millan \n" "Language-Team: None \n" @@ -882,6 +882,15 @@ msgstr "" msgid "Path table size(bytes): %d\n" msgstr "" +#: normal/menu_text.c:97 +#, c-format +msgid "" +"\n" +" Use the %C and %C keys to select which entry is highlighted.\n" +msgstr "" +"\n" +" Utilitzeu les tecles %C i %C per a seleccionar l'entrada.\n" + #: util/grub.d/10_kfreebsd.in:40 msgid "%s, with kFreeBSD %s" msgstr "" From cb681ffd7af8aac37c2718eedb041c9b5330abcb Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sat, 21 Nov 2009 21:18:12 +0000 Subject: [PATCH 08/49] Deletes grub-gettext_lib.in (not needed after Robert's changes) --- util/grub-gettext_lib.in | 23 ----------------------- util/grub-mkconfig_lib.in | 11 ----------- 2 files changed, 34 deletions(-) delete mode 100644 util/grub-gettext_lib.in diff --git a/util/grub-gettext_lib.in b/util/grub-gettext_lib.in deleted file mode 100644 index 00d1bdd98..000000000 --- a/util/grub-gettext_lib.in +++ /dev/null @@ -1,23 +0,0 @@ -# Configuration of grub-gettext -# Copyright (C) 2009 Free Software Foundation, Inc. -# -# GRUB is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# GRUB is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with GRUB. If not, see . - -prefix=@prefix@ -exec_prefix=@exec_prefix@ -libdir=@libdir@ - -TEXTDOMAINDIR=@prefix@/share/locale -TEXTDOMAIN=grub -. gettext.sh diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in index 47e37f265..bb30cc475 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -215,14 +215,3 @@ version_find_latest () done echo "$a" } - -get_locale_lang () -{ - lang="`echo ${LANG} | cut -d _ -f 1`" - if [ "x${lang}" = "x" ] ; then - return 1 - else - echo "${lang}" - return 0 - fi -} From 414092d75a54ad4b6c86c2131fe61778d93ce79f Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sat, 21 Nov 2009 22:19:16 +0000 Subject: [PATCH 09/49] Adds the ChangeLog.gettext file --- ChangeLog.gettext | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 ChangeLog.gettext diff --git a/ChangeLog.gettext b/ChangeLog.gettext new file mode 100644 index 000000000..6bce3f38b --- /dev/null +++ b/ChangeLog.gettext @@ -0,0 +1,15 @@ +YYYY-MM-DD Carles Pina i Estany + + * conf/common.rmk: Add grub-gettext_lib target, dependency and + SOURCES, CFLAGS, LDFLAGS + * gettext/gettext.c: New file with gettext implementation + * include/grub/i18n_grub.h: New file with grub_gettext macros + * include/grub/misc.h: Define macro _(char *s). Declare + grub_gettext_dummy and grub_gettext + * kern/misc.c: Define grub_gettext symbol implementation of the + grub_gettext_dummy function + * normal/menu_text.c: Gettextize one message in print_message + * po/POTFILES: Adds normal/menu_text.c + * po/ca.po: Adds the new string + * util/grub.d/00_header.in: defines gettext variables and loads + the module From 43fa69467ceb2a55eb8176c474159a4806f05614 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sat, 21 Nov 2009 23:06:37 +0000 Subject: [PATCH 10/49] Moves where pkglib_MODULS += gettext.mod is defined --- conf/common.rmk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/conf/common.rmk b/conf/common.rmk index da56015ba..a4c3c80e8 100644 --- a/conf/common.rmk +++ b/conf/common.rmk @@ -185,7 +185,7 @@ grub-mkconfig_DATA += util/grub.d/README pkglib_MODULES += fshelp.mod fat.mod ufs1.mod ufs2.mod ext2.mod ntfs.mod \ ntfscomp.mod minix.mod hfs.mod jfs.mod iso9660.mod xfs.mod \ affs.mod sfs.mod hfsplus.mod reiserfs.mod cpio.mod tar.mod \ - udf.mod afs.mod afs_be.mod befs.mod befs_be.mod gettext.mod + udf.mod afs.mod afs_be.mod befs.mod befs_be.mod # For fshelp.mod. fshelp_mod_SOURCES = fs/fshelp.c @@ -617,6 +617,7 @@ bufio_mod_CFLAGS = $(COMMON_CFLAGS) bufio_mod_LDFLAGS = $(COMMON_LDFLAGS) # For gettext.mod. +pkglib_MODULES += gettext.mod gettext_mod_SOURCES = gettext/gettext.c gettext_mod_CFLAGS = $(COMMON_CFLAGS) gettext_mod_LDFLAGS = $(COMMON_LDFLAGS) From ee99edc8099de8e47355dbdb8b6d27d8c9f13594 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sat, 21 Nov 2009 23:11:14 +0000 Subject: [PATCH 11/49] Some comments following Grub standard of code. --- gettext/gettext.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gettext/gettext.c b/gettext/gettext.c index 9a658f5db..ca00a86b7 100644 --- a/gettext/gettext.c +++ b/gettext/gettext.c @@ -222,12 +222,12 @@ grub_gettext_init_ext (const char *lang) fd_mo = 0; - // mo_file e.g.: /boot/grub/locale/ca.mo + /* mo_file e.g.: /boot/grub/locale/ca.mo */ mo_file = grub_malloc (grub_strlen (locale_dir) + sizeof ("/") + grub_strlen (lang) + sizeof(".mo")); - // Warning: if changing some paths in the below line, change the grub_malloc - // contents below + /* Warning: if changing some paths in the below line, change the grub_malloc + contents below. */ grub_sprintf (mo_file, "%s/%s.mo", locale_dir, lang); From 0648f857eade0c094b08baab277de4d9e74bbe90 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 11:49:54 +0000 Subject: [PATCH 12/49] Different changes following Robert's email 20091121230904.GA29740@thorin --- gettext/gettext.c | 167 +++++++++++++++++++-------------------- include/grub/file.h | 2 + include/grub/i18n.h | 2 +- include/grub/i18n_grub.h | 24 ------ kern/file.c | 10 +++ normal/menu_text.c | 4 +- po/ca.po | 7 +- util/grub.d/00_header.in | 4 +- 8 files changed, 107 insertions(+), 113 deletions(-) delete mode 100644 include/grub/i18n_grub.h diff --git a/gettext/gettext.c b/gettext/gettext.c index ca00a86b7..c488f0e50 100644 --- a/gettext/gettext.c +++ b/gettext/gettext.c @@ -25,6 +25,7 @@ #include #include #include +#include /* .mo file information from: @@ -32,42 +33,41 @@ */ -static grub_file_t grub_mofile_open (const char *name); static grub_file_t fd_mo; static int grub_gettext_offsetoriginal; static int grub_gettext_max; -static const char* (*grub_gettext_original) (const char *s); +static const char *(*grub_gettext_original) (const char *s); -#define GETTEXT_MAGIC_NUMBER 0 -#define GETTEXT_FILE_FORMAT 4 -#define GETTEXT_NUMBER_OF_STRINGS 8 -#define GETTEXT_OFFSET_ORIGINAL 12 -#define GETTEXT_OFFSET_TRANSLATION 16 +#define GETTEXT_MAGIC_NUMBER 0 +#define GETTEXT_FILE_FORMAT 4 +#define GETTEXT_NUMBER_OF_STRINGS 8 +#define GETTEXT_OFFSET_ORIGINAL 12 +#define GETTEXT_OFFSET_TRANSLATION 16 -#define MO_MAGIC_NUMBER 0x950412de +#define MO_MAGIC_NUMBER 0x950412de static grub_uint32_t grub_gettext_get_info (int offset) { grub_uint32_t value; - grub_file_seek (fd_mo, offset); - grub_file_read (fd_mo, (char*) &value, 4); + grub_file_pread (fd_mo, (char *) &value, 4, offset); + value = grub_cpu_to_le32 (value); return value; } static void -grub_gettext_getstring_from_offset (grub_uint32_t offset, grub_uint32_t length, char *translation) +grub_gettext_getstring_from_offset (grub_uint32_t offset, + grub_uint32_t length, char *translation) { - grub_file_seek (fd_mo, offset); - grub_file_read (fd_mo, translation, length); + grub_file_pread (fd_mo, translation, length, offset); translation[length] = '\0'; } -static char* +static char * grub_gettext_gettranslation_from_position (int position) { int offsettranslation; @@ -79,21 +79,19 @@ grub_gettext_gettranslation_from_position (int position) internal_position = offsettranslation + position * 8; - grub_file_seek (fd_mo, internal_position); - grub_file_read (fd_mo, (char*) &length, 4); + grub_file_pread (fd_mo, (char *) &length, 4, internal_position); length = grub_cpu_to_le32 (length); - - grub_file_seek (fd_mo, internal_position + 4), - grub_file_read (fd_mo, (char*) &offset, 4); + + grub_file_pread (fd_mo, (char *) &offset, 4, internal_position + 4); offset = grub_cpu_to_le32 (offset); - translation = grub_malloc(length + 1); + translation = grub_malloc (length + 1); grub_gettext_getstring_from_offset (offset, length, translation); return translation; } -static char* +static char * grub_gettext_getstring_from_position (int position) { int internal_position; @@ -104,12 +102,10 @@ grub_gettext_getstring_from_position (int position) internal_position = grub_gettext_offsetoriginal + (position * 8); /* Get the length of the string i. */ - grub_file_seek (fd_mo, internal_position); - grub_file_read (fd_mo, (char *) &length, 4); + grub_file_pread (fd_mo, (char *) &length, 4, internal_position); /* Get the offset of the string i. */ - grub_file_seek (fd_mo, internal_position + 4); - grub_file_read (fd_mo, (char *) &offset, 4); + grub_file_pread (fd_mo, (char *) &offset, 4, internal_position + 4); /* Get the string i. */ original = grub_malloc (length + 1); @@ -118,13 +114,13 @@ grub_gettext_getstring_from_position (int position) return original; } -static const char* +static const char * grub_gettext_translate (const char *orig) { char *current_string; char *ret; - int min,max,current; + int min, max, current; if (fd_mo == 0) return orig; @@ -140,25 +136,25 @@ grub_gettext_translate (const char *orig) /* Search by bisection. */ if (grub_strcmp (current_string, orig) < 0) - { - grub_free(current_string); - min=current; - } + { + grub_free (current_string); + min = current; + } else if (grub_strcmp (current_string, orig) > 0) - { - grub_free(current_string); - max=current; - } + { + grub_free (current_string); + max = current; + } else if (grub_strcmp (current_string, orig) == 0) - { - grub_free(current_string); - return grub_gettext_gettranslation_from_position (current); - } - current = (max+min)/2; + { + grub_free (current_string); + return grub_gettext_gettranslation_from_position (current); + } + current = (max + min) / 2; } - ret = grub_malloc(grub_strlen(orig) + 1); - grub_strcpy(ret,orig); + ret = grub_malloc (grub_strlen (orig) + 1); + grub_strcpy (ret, orig); return ret; } @@ -168,46 +164,42 @@ grub_mofile_open (const char *filename) { int unsigned magic; int version; + grub_file_t new_fd; /* Using fd_mo and not another variable because it's needed for grub_gettext_get_info. */ - fd_mo = grub_file_open (filename); - if (! fd_mo) + new_fd = grub_gzfile_open (filename, 1); + grub_errno = GRUB_ERR_NONE; + + if (!new_fd) { - grub_error (GRUB_ERR_FILE_READ_ERROR, "Cannot read %s",filename); + grub_dprintf ("gettext: Cannot read %s", filename); return 0; } + fd_mo = new_fd; + magic = grub_gettext_get_info (GETTEXT_MAGIC_NUMBER); if (magic != MO_MAGIC_NUMBER) { - grub_error (GRUB_ERR_BAD_FILE_TYPE, "mo: invalid mo file: %s", filename); + grub_error (GRUB_ERR_BAD_FILE_TYPE, "mo: invalid mo file: %s", + filename); grub_file_close (fd_mo); fd_mo = 0; return 0; } - + version = grub_gettext_get_info (GETTEXT_FILE_FORMAT); if (version != 0) { - grub_error (GRUB_ERR_BAD_FILE_TYPE, "mo: invalid mo version in file: %s", filename); + grub_error (GRUB_ERR_BAD_FILE_TYPE, + "mo: invalid mo version in file: %s", filename); fd_mo = 0; return 0; } - - /* - Do we want .mo.gz files? Then, the code: - file = grub_gzio_open (io, 0); // 0: transparent - if (! file) - { - grub_printf("Problems opening the file\n"); - grub_file_close (io); - return 0; - } - */ return fd_mo; } @@ -219,57 +211,64 @@ grub_gettext_init_ext (const char *lang) char *locale_dir; locale_dir = grub_env_get ("locale_dir"); - - fd_mo = 0; - + if (locale_dir == NULL) + { + grub_printf ("locale_dir variable is not setted up."); + return; + } + + fd_mo = NULL; + /* mo_file e.g.: /boot/grub/locale/ca.mo */ - mo_file = grub_malloc (grub_strlen (locale_dir) + sizeof ("/") + grub_strlen (lang) + sizeof(".mo")); - + mo_file = + grub_malloc (grub_strlen (locale_dir) + grub_strlen ("/") + + grub_strlen (lang) + grub_strlen (".mo") + 1); + /* Warning: if changing some paths in the below line, change the grub_malloc contents below. */ - + grub_sprintf (mo_file, "%s/%s.mo", locale_dir, lang); - grub_dprintf("gettext", "Will try to open file: %s " ,mo_file); + fd_mo = grub_mofile_open (mo_file); - fd_mo = grub_mofile_open(mo_file); - grub_free (mo_file); + /* Will try adding .gz as well. */ + if (fd_mo == NULL) + { + grub_sprintf (mo_file, "%s.gz", mo_file); + fd_mo = grub_mofile_open (mo_file); + } if (fd_mo) { - grub_gettext_offsetoriginal = grub_gettext_get_info(GETTEXT_OFFSET_ORIGINAL); - grub_gettext_max = grub_gettext_get_info(GETTEXT_NUMBER_OF_STRINGS); + grub_gettext_offsetoriginal = + grub_gettext_get_info (GETTEXT_OFFSET_ORIGINAL); + grub_gettext_max = grub_gettext_get_info (GETTEXT_NUMBER_OF_STRINGS); grub_gettext_original = grub_gettext; grub_gettext = grub_gettext_translate; } } -static char* -grub_gettext_env_write_lang (struct grub_env_var *var __attribute__ ((unused)), - const char *val) +static char * +grub_gettext_env_write_lang (struct grub_env_var *var + __attribute__ ((unused)), const char *val) { grub_gettext_init_ext (val); return grub_strdup (val); } -GRUB_MOD_INIT(gettext) +GRUB_MOD_INIT (gettext) { - (void)mod; /* To stop warning. */ - + (void) mod; /* To stop warning. */ + const char *lang; - lang = grub_env_get ("lang"); + lang = grub_env_get ("lang"); grub_gettext_init_ext (lang); - /* Testing: - grub_register_command ("_", grub_cmd_translate, GRUB_COMMAND_FLAG_BOTH, - "_", "internalization support trans", 0); - */ - /* Reload .mo file information if lang changes. */ grub_register_variable_hook ("lang", NULL, grub_gettext_env_write_lang); @@ -277,10 +276,10 @@ GRUB_MOD_INIT(gettext) grub_env_export ("lang"); } -GRUB_MOD_FINI(gettext) +GRUB_MOD_FINI (gettext) { if (fd_mo != 0) - grub_file_close(fd_mo); + grub_file_close (fd_mo); grub_gettext = grub_gettext_original; } diff --git a/include/grub/file.h b/include/grub/file.h index 2aacf936f..6625e045d 100644 --- a/include/grub/file.h +++ b/include/grub/file.h @@ -55,6 +55,8 @@ grub_file_t EXPORT_FUNC(grub_file_open) (const char *name); grub_ssize_t EXPORT_FUNC(grub_file_read) (grub_file_t file, void *buf, grub_size_t len); grub_off_t EXPORT_FUNC(grub_file_seek) (grub_file_t file, grub_off_t offset); +grub_ssize_t EXPORT_FUNC(grub_file_pread) (grub_file_t file, void *buf, grub_size_t len, grub_off_t offset); + grub_err_t EXPORT_FUNC(grub_file_close) (grub_file_t file); static inline grub_off_t diff --git a/include/grub/i18n.h b/include/grub/i18n.h index e436f6e28..96317fd33 100644 --- a/include/grub/i18n.h +++ b/include/grub/i18n.h @@ -24,7 +24,7 @@ # include # define _(str) gettext(str) #else -# define _(str) str +# define _(str) grub_gettext(str) #endif #endif /* GRUB_I18N_H */ diff --git a/include/grub/i18n_grub.h b/include/grub/i18n_grub.h deleted file mode 100644 index ed3382568..000000000 --- a/include/grub/i18n_grub.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2009 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_I18N_GRUB_H -#define GRUB_I18N_GRUB_H 1 - -# define _(str) grub_gettext(str) - -#endif /* GRUB_I18N_GRUB_H */ diff --git a/kern/file.c b/kern/file.c index f713acbca..00f69f05d 100644 --- a/kern/file.c +++ b/kern/file.c @@ -164,3 +164,13 @@ grub_file_seek (grub_file_t file, grub_off_t offset) file->offset = offset; return old; } + +grub_ssize_t +grub_file_pread (grub_file_t file, void *buf, grub_size_t len, grub_off_t offset) +{ + if (grub_file_seek (file, offset) == (grub_off_t)-1) + { + return -1; + } + return grub_file_read (file, buf, len); +} diff --git a/normal/menu_text.c b/normal/menu_text.c index 66a0bcfb4..fe86195dc 100644 --- a/normal/menu_text.c +++ b/normal/menu_text.c @@ -25,7 +25,7 @@ #include #include #include -#include +#include /* Time to delay after displaying an error message about a default/fallback entry failing to boot. */ @@ -267,7 +267,7 @@ print_timeout (int timeout, int offset, int second_stage) { /* NOTE: Do not remove the trailing space characters. They are required to clear the line. */ - char *msg = " The highlighted entry will be booted automatically in %ds. "; + const char *msg = _(" The highlighted entry will be booted automatically in %ds. "); char *msg_end = grub_strchr (msg, '%'); grub_gotoxy (second_stage ? (msg_end - msg) : 0, GRUB_TERM_HEIGHT - 3); diff --git a/po/ca.po b/po/ca.po index 02cfe3751..bf4f89c30 100644 --- a/po/ca.po +++ b/po/ca.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU GRUB\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-11-19 21:37+0000\n" +"POT-Creation-Date: 2009-11-22 11:45+0000\n" "PO-Revision-Date: 2009-11-17 12:26+0100\n" "Last-Translator: Robert Millan \n" "Language-Team: None \n" @@ -891,6 +891,11 @@ msgstr "" "\n" " Utilitzeu les tecles %C i %C per a seleccionar l'entrada.\n" +#: normal/menu_text.c:270 +#, c-format +msgid " The highlighted entry will be booted automatically in %ds. " +msgstr " L entrada seleccionada sera arrancada automaticament en %ds. " + #: util/grub.d/10_kfreebsd.in:40 msgid "%s, with kFreeBSD %s" msgstr "" diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in index d1e25dfe3..96352cdae 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -103,11 +103,13 @@ EOF esac # Gettext variables and module -cat << EOF +if [ "x${LANG}" != "xC" ] ; then + cat << EOF set locale_dir=${locale_dir} set lang=${grub_lang} insmod gettext EOF +fi if [ "x${GRUB_HIDDEN_TIMEOUT}" != "x" ] ; then if [ "x${GRUB_HIDDEN_TIMEOUT_QUIET}" = "xtrue" ] ; then From e5fb78c684240e2db5e38dac1b93d1c19b142dfe Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 12:50:46 +0000 Subject: [PATCH 13/49] This commit is the same than gettext08.patch (see mailing list) --- ChangeLog.gettext | 29 ++++++++++++++++------------- conf/common.rmk | 2 +- gettext/gettext.c | 23 +++++++++++++++++------ include/grub/file.h | 2 -- include/grub/misc.h | 2 +- kern/file.c | 10 ---------- 6 files changed, 35 insertions(+), 33 deletions(-) diff --git a/ChangeLog.gettext b/ChangeLog.gettext index 6bce3f38b..a62869861 100644 --- a/ChangeLog.gettext +++ b/ChangeLog.gettext @@ -1,15 +1,18 @@ YYYY-MM-DD Carles Pina i Estany - * conf/common.rmk: Add grub-gettext_lib target, dependency and - SOURCES, CFLAGS, LDFLAGS - * gettext/gettext.c: New file with gettext implementation - * include/grub/i18n_grub.h: New file with grub_gettext macros - * include/grub/misc.h: Define macro _(char *s). Declare - grub_gettext_dummy and grub_gettext - * kern/misc.c: Define grub_gettext symbol implementation of the - grub_gettext_dummy function - * normal/menu_text.c: Gettextize one message in print_message - * po/POTFILES: Adds normal/menu_text.c - * po/ca.po: Adds the new string - * util/grub.d/00_header.in: defines gettext variables and loads - the module + * conf/common.rmk: Add grub-gettext_lib target and updates + lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS, + LDFLAGS. + * gettext/gettext.c: New file. (Reads mo files). + * include/grub/file.h (grub_file_pread): New prototype. + * include/grub/i18n.h (_): New prototype. + * include/grub/misc.h (grub_gettext_dummy, grub_gettext): New + prototypes. + * kern/misc.c (grub_gettext_dummy): New function. + * menu/menu_text.c: Include . + * menu/menu_text.c (print_timeout): Gettexttize string. + * menu/menu_text.c (print_message): Gettexttize string. + * po/POTFILES: Add `normal/menu_text.c'. + * po/ca.po: Add new translations. + * util/grub.d/00_header.in: Define locale_dir and lang. insmod + gettext module and defines locale_dir and lang in grub.cfg. diff --git a/conf/common.rmk b/conf/common.rmk index a4c3c80e8..be0543d83 100644 --- a/conf/common.rmk +++ b/conf/common.rmk @@ -185,7 +185,7 @@ grub-mkconfig_DATA += util/grub.d/README pkglib_MODULES += fshelp.mod fat.mod ufs1.mod ufs2.mod ext2.mod ntfs.mod \ ntfscomp.mod minix.mod hfs.mod jfs.mod iso9660.mod xfs.mod \ affs.mod sfs.mod hfsplus.mod reiserfs.mod cpio.mod tar.mod \ - udf.mod afs.mod afs_be.mod befs.mod befs_be.mod + udf.mod afs.mod afs_be.mod befs.mod befs_be.mod # For fshelp.mod. fshelp_mod_SOURCES = fs/fshelp.c diff --git a/gettext/gettext.c b/gettext/gettext.c index c488f0e50..799d8a037 100644 --- a/gettext/gettext.c +++ b/gettext/gettext.c @@ -48,12 +48,23 @@ static const char *(*grub_gettext_original) (const char *s); #define MO_MAGIC_NUMBER 0x950412de +static grub_ssize_t +grub_gettext_pread (grub_file_t file, void *buf, grub_size_t len, + grub_off_t offset) +{ + if (grub_file_seek (file, offset) == (grub_off_t) - 1) + { + return -1; + } + return grub_file_read (file, buf, len); +} + static grub_uint32_t grub_gettext_get_info (int offset) { grub_uint32_t value; - grub_file_pread (fd_mo, (char *) &value, 4, offset); + grub_gettext_pread (fd_mo, (char *) &value, 4, offset); value = grub_cpu_to_le32 (value); return value; @@ -63,7 +74,7 @@ static void grub_gettext_getstring_from_offset (grub_uint32_t offset, grub_uint32_t length, char *translation) { - grub_file_pread (fd_mo, translation, length, offset); + grub_gettext_pread (fd_mo, translation, length, offset); translation[length] = '\0'; } @@ -79,10 +90,10 @@ grub_gettext_gettranslation_from_position (int position) internal_position = offsettranslation + position * 8; - grub_file_pread (fd_mo, (char *) &length, 4, internal_position); + grub_gettext_pread (fd_mo, (char *) &length, 4, internal_position); length = grub_cpu_to_le32 (length); - grub_file_pread (fd_mo, (char *) &offset, 4, internal_position + 4); + grub_gettext_pread (fd_mo, (char *) &offset, 4, internal_position + 4); offset = grub_cpu_to_le32 (offset); translation = grub_malloc (length + 1); @@ -102,10 +113,10 @@ grub_gettext_getstring_from_position (int position) internal_position = grub_gettext_offsetoriginal + (position * 8); /* Get the length of the string i. */ - grub_file_pread (fd_mo, (char *) &length, 4, internal_position); + grub_gettext_pread (fd_mo, (char *) &length, 4, internal_position); /* Get the offset of the string i. */ - grub_file_pread (fd_mo, (char *) &offset, 4, internal_position + 4); + grub_gettext_pread (fd_mo, (char *) &offset, 4, internal_position + 4); /* Get the string i. */ original = grub_malloc (length + 1); diff --git a/include/grub/file.h b/include/grub/file.h index 6625e045d..2aacf936f 100644 --- a/include/grub/file.h +++ b/include/grub/file.h @@ -55,8 +55,6 @@ grub_file_t EXPORT_FUNC(grub_file_open) (const char *name); grub_ssize_t EXPORT_FUNC(grub_file_read) (grub_file_t file, void *buf, grub_size_t len); grub_off_t EXPORT_FUNC(grub_file_seek) (grub_file_t file, grub_off_t offset); -grub_ssize_t EXPORT_FUNC(grub_file_pread) (grub_file_t file, void *buf, grub_size_t len, grub_off_t offset); - grub_err_t EXPORT_FUNC(grub_file_close) (grub_file_t file); static inline grub_off_t diff --git a/include/grub/misc.h b/include/grub/misc.h index bc725f9ca..8ec8ad822 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -192,7 +192,7 @@ grub_uint64_t EXPORT_FUNC(grub_divmod64) (grub_uint64_t n, grub_uint32_t d, grub_uint32_t *r); const char *EXPORT_FUNC(grub_gettext_dummy) (const char *s); -extern const char *(*EXPORT_VAR(grub_gettext)) (const char *s);// = grub_gettext_dummy; +extern const char *(*EXPORT_VAR(grub_gettext)) (const char *s); #ifdef NEED_ENABLE_EXECUTE_STACK void EXPORT_FUNC(__enable_execute_stack) (void *addr); diff --git a/kern/file.c b/kern/file.c index 00f69f05d..f713acbca 100644 --- a/kern/file.c +++ b/kern/file.c @@ -164,13 +164,3 @@ grub_file_seek (grub_file_t file, grub_off_t offset) file->offset = offset; return old; } - -grub_ssize_t -grub_file_pread (grub_file_t file, void *buf, grub_size_t len, grub_off_t offset) -{ - if (grub_file_seek (file, offset) == (grub_off_t)-1) - { - return -1; - } - return grub_file_read (file, buf, len); -} From 938d89c04d905b185eed012b7813839acacec52e Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 13:01:49 +0000 Subject: [PATCH 14/49] Corrects Catalan translation --- po/ca.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/po/ca.po b/po/ca.po index bf4f89c30..750574847 100644 --- a/po/ca.po +++ b/po/ca.po @@ -63,7 +63,7 @@ msgstr "" #: util/i386/pc/grub-mkimage.c:321 util/i386/pc/grub-setup.c:587 #, c-format msgid "Try ``%s --help'' for more information.\n" -msgstr "Proveu «%s --help» per a obtenir més informació.\n" +msgstr "Proveu «%s --help» per a obtenir més informació.\n" #: util/i386/pc/grub-mkimage.c:323 #, c-format @@ -894,7 +894,7 @@ msgstr "" #: normal/menu_text.c:270 #, c-format msgid " The highlighted entry will be booted automatically in %ds. " -msgstr " L entrada seleccionada sera arrancada automaticament en %ds. " +msgstr " L' entrada seleccionada serà arrancada automàticament en %ds. " #: util/grub.d/10_kfreebsd.in:40 msgid "%s, with kFreeBSD %s" From c505aa627f4e9cc43d72d7f2516d91c1f6c25b2d Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 16:57:17 +0000 Subject: [PATCH 15/49] Removes a debug variable (new_fd) --- gettext/gettext.c | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/gettext/gettext.c b/gettext/gettext.c index 799d8a037..355bb75a0 100644 --- a/gettext/gettext.c +++ b/gettext/gettext.c @@ -175,22 +175,19 @@ grub_mofile_open (const char *filename) { int unsigned magic; int version; - grub_file_t new_fd; /* Using fd_mo and not another variable because it's needed for grub_gettext_get_info. */ - new_fd = grub_gzfile_open (filename, 1); + fd_mo = grub_gzfile_open (filename, 1); grub_errno = GRUB_ERR_NONE; - if (!new_fd) + if (!fd_mo) { - grub_dprintf ("gettext: Cannot read %s", filename); + grub_dprintf ("gettext", "Cannot read %s", filename); return 0; } - fd_mo = new_fd; - magic = grub_gettext_get_info (GETTEXT_MAGIC_NUMBER); if (magic != MO_MAGIC_NUMBER) From 30144059239f9e3475349e2d0e9a5e5092faf0f1 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 16:59:20 +0000 Subject: [PATCH 16/49] Changes catalan strings like it was before (test) --- po/ca.po | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/ca.po b/po/ca.po index 750574847..e0e6e4d06 100644 --- a/po/ca.po +++ b/po/ca.po @@ -894,7 +894,7 @@ msgstr "" #: normal/menu_text.c:270 #, c-format msgid " The highlighted entry will be booted automatically in %ds. " -msgstr " L' entrada seleccionada serà arrancada automàticament en %ds. " +msgstr " L' entrada seleccionada sera arrancada automaticament en %ds. " #: util/grub.d/10_kfreebsd.in:40 msgid "%s, with kFreeBSD %s" From b6c871b0d7879f1848d70ebde302e453a6ca50a2 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 18:58:19 +0000 Subject: [PATCH 17/49] Some more changes... --- gettext/gettext.c | 21 +++++++++++++++++++-- po/ca.po | 6 +++--- 2 files changed, 22 insertions(+), 5 deletions(-) diff --git a/gettext/gettext.c b/gettext/gettext.c index 355bb75a0..46ceb3432 100644 --- a/gettext/gettext.c +++ b/gettext/gettext.c @@ -184,7 +184,7 @@ grub_mofile_open (const char *filename) if (!fd_mo) { - grub_dprintf ("gettext", "Cannot read %s", filename); + grub_dprintf ("gettext", "Cannot read %s\n", filename); return 0; } @@ -204,7 +204,7 @@ grub_mofile_open (const char *filename) if (version != 0) { grub_error (GRUB_ERR_BAD_FILE_TYPE, - "mo: invalid mo version in file: %s", filename); + "mo: invalid mo version in file: %s\n", filename); fd_mo = 0; return 0; } @@ -267,6 +267,19 @@ grub_gettext_env_write_lang (struct grub_env_var *var return grub_strdup (val); } +static grub_err_t +grub_cmd_translate (grub_command_t cmd __attribute__ ((unused)), + int argc, char **args) +{ + if (argc != 1) + return grub_error (GRUB_ERR_BAD_ARGUMENT, "text to translate required"); + + const char *translation; + translation = grub_gettext_translate (args[0]); + grub_printf ("%s\n", translation); + return 0; +} + GRUB_MOD_INIT (gettext) { (void) mod; /* To stop warning. */ @@ -277,6 +290,10 @@ GRUB_MOD_INIT (gettext) grub_gettext_init_ext (lang); + grub_register_command_p1 ("gettext", grub_cmd_translate, + "gettext STRING", + "Translates the string with the current settings."); + /* Reload .mo file information if lang changes. */ grub_register_variable_hook ("lang", NULL, grub_gettext_env_write_lang); diff --git a/po/ca.po b/po/ca.po index e0e6e4d06..12d57b0af 100644 --- a/po/ca.po +++ b/po/ca.po @@ -63,7 +63,7 @@ msgstr "" #: util/i386/pc/grub-mkimage.c:321 util/i386/pc/grub-setup.c:587 #, c-format msgid "Try ``%s --help'' for more information.\n" -msgstr "Proveu «%s --help» per a obtenir més informació.\n" +msgstr "Proveu «%s --help» per a obtenir més informació.\n" #: util/i386/pc/grub-mkimage.c:323 #, c-format @@ -889,12 +889,12 @@ msgid "" " Use the %C and %C keys to select which entry is highlighted.\n" msgstr "" "\n" -" Utilitzeu les tecles %C i %C per a seleccionar l'entrada.\n" +" Utilitzeu les tecles %C i %C per a seleccionar l'entrada ressaltada.\n" #: normal/menu_text.c:270 #, c-format msgid " The highlighted entry will be booted automatically in %ds. " -msgstr " L' entrada seleccionada sera arrancada automaticament en %ds. " +msgstr " L' entrada seleccionada arrencarà automàticament en %ds. " #: util/grub.d/10_kfreebsd.in:40 msgid "%s, with kFreeBSD %s" From 6e2621b9ffc088b54a859337d463b01de607c662 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 21:41:33 +0000 Subject: [PATCH 18/49] Final touches (don't gettextize a string, chang setted by set) --- gettext/gettext.c | 2 +- normal/menu_text.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/gettext/gettext.c b/gettext/gettext.c index 46ceb3432..5c1279dc3 100644 --- a/gettext/gettext.c +++ b/gettext/gettext.c @@ -221,7 +221,7 @@ grub_gettext_init_ext (const char *lang) locale_dir = grub_env_get ("locale_dir"); if (locale_dir == NULL) { - grub_printf ("locale_dir variable is not setted up."); + grub_printf ("locale_dir variable is not set up."); return; } diff --git a/normal/menu_text.c b/normal/menu_text.c index fe86195dc..4ff22e928 100644 --- a/normal/menu_text.c +++ b/normal/menu_text.c @@ -267,7 +267,7 @@ print_timeout (int timeout, int offset, int second_stage) { /* NOTE: Do not remove the trailing space characters. They are required to clear the line. */ - const char *msg = _(" The highlighted entry will be booted automatically in %ds. "); + char *msg = " The highlighted entry will be booted automatically in %ds. "; char *msg_end = grub_strchr (msg, '%'); grub_gotoxy (second_stage ? (msg_end - msg) : 0, GRUB_TERM_HEIGHT - 3); From 347687cf6e51c424c26a71ccff87b1019f4cab3c Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 21:42:28 +0000 Subject: [PATCH 19/49] Removes the non-gettext string --- po/ca.po | 5 ----- 1 file changed, 5 deletions(-) diff --git a/po/ca.po b/po/ca.po index 12d57b0af..509ea3c7d 100644 --- a/po/ca.po +++ b/po/ca.po @@ -891,11 +891,6 @@ msgstr "" "\n" " Utilitzeu les tecles %C i %C per a seleccionar l'entrada ressaltada.\n" -#: normal/menu_text.c:270 -#, c-format -msgid " The highlighted entry will be booted automatically in %ds. " -msgstr " L' entrada seleccionada arrencarà automàticament en %ds. " - #: util/grub.d/10_kfreebsd.in:40 msgid "%s, with kFreeBSD %s" msgstr "" From 4baf87d9e44f10c3ab1fb287f77edf7d681734b6 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 21:45:40 +0000 Subject: [PATCH 20/49] merging to trunk... --- ChangeLog | 19 +++++++++++++++++++ ChangeLog.gettext | 18 ------------------ 2 files changed, 19 insertions(+), 18 deletions(-) delete mode 100644 ChangeLog.gettext diff --git a/ChangeLog b/ChangeLog index 4a26413d4..d9f2cee2a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,22 @@ +2009-11-22 Carles Pina i Estany + + * conf/common.rmk: Add grub-gettext_lib target and updates + lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS, + LDFLAGS. + * gettext/gettext.c: New file. (Reads mo files). + * include/grub/file.h (grub_file_pread): New prototype. + * include/grub/i18n.h (_): New prototype. + * include/grub/misc.h (grub_gettext_dummy, grub_gettext): New + prototypes. + * kern/misc.c (grub_gettext_dummy): New function. + * menu/menu_text.c: Include . + * menu/menu_text.c (print_timeout): Gettexttize string. + * menu/menu_text.c (print_message): Gettexttize string. + * po/POTFILES: Add `normal/menu_text.c'. + * po/ca.po: Add new translations. + * util/grub.d/00_header.in: Define locale_dir and lang. insmod + gettext module and defines locale_dir and lang in grub.cfg. + 2009-11-22 Robert Millan * util/i386/pc/grub-mkimage.c: Ungettextize grub_util_info() strings. diff --git a/ChangeLog.gettext b/ChangeLog.gettext deleted file mode 100644 index a62869861..000000000 --- a/ChangeLog.gettext +++ /dev/null @@ -1,18 +0,0 @@ -YYYY-MM-DD Carles Pina i Estany - - * conf/common.rmk: Add grub-gettext_lib target and updates - lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS, - LDFLAGS. - * gettext/gettext.c: New file. (Reads mo files). - * include/grub/file.h (grub_file_pread): New prototype. - * include/grub/i18n.h (_): New prototype. - * include/grub/misc.h (grub_gettext_dummy, grub_gettext): New - prototypes. - * kern/misc.c (grub_gettext_dummy): New function. - * menu/menu_text.c: Include . - * menu/menu_text.c (print_timeout): Gettexttize string. - * menu/menu_text.c (print_message): Gettexttize string. - * po/POTFILES: Add `normal/menu_text.c'. - * po/ca.po: Add new translations. - * util/grub.d/00_header.in: Define locale_dir and lang. insmod - gettext module and defines locale_dir and lang in grub.cfg. From 4d1f668fd9be725d9a5cac6209505ca9b113e1f9 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 22:24:54 +0000 Subject: [PATCH 21/49] 2009-11-22 Carles Pina i Estany * normal/menu_text.c: Gettexttize but not print_timeout function. * normal/main.c: Gettexttize. * normal/menu_entry.c: Likewise. --- ChangeLog.gettext2 | 5 +++++ normal/main.c | 5 +++-- normal/menu_entry.c | 5 +++-- normal/menu_text.c | 20 ++++++++++---------- 4 files changed, 21 insertions(+), 14 deletions(-) create mode 100644 ChangeLog.gettext2 diff --git a/ChangeLog.gettext2 b/ChangeLog.gettext2 new file mode 100644 index 000000000..0aee7e2e4 --- /dev/null +++ b/ChangeLog.gettext2 @@ -0,0 +1,5 @@ +2009-11-22 Carles Pina i Estany + + * normal/menu_text.c: Gettexttize but not print_timeout function. + * normal/main.c: Gettexttize. + * normal/menu_entry.c: Likewise. diff --git a/normal/main.c b/normal/main.c index 748eef805..afe3667f3 100644 --- a/normal/main.c +++ b/normal/main.c @@ -29,6 +29,7 @@ #include #include #include +#include #define GRUB_DEFAULT_HISTORY_SIZE 50 @@ -508,10 +509,10 @@ grub_normal_reader_init (void) grub_normal_init_page (); grub_setcursor (1); - grub_printf ("\ + grub_printf (_("\ [ Minimal BASH-like line editing is supported. For the first word, TAB\n\ lists possible command completions. Anywhere else TAB lists possible\n\ - device/file completions.%s ]\n\n", + device/file completions.%s ]\n\n"), reader_nested ? " ESC at any time exits." : ""); return 0; diff --git a/normal/menu_entry.c b/normal/menu_entry.c index 75a63779f..7478c33ae 100644 --- a/normal/menu_entry.c +++ b/normal/menu_entry.c @@ -24,6 +24,7 @@ #include #include #include +#include enum update_mode { @@ -996,7 +997,7 @@ run (struct screen *screen) } grub_cls (); - grub_printf (" Booting a command list\n\n"); + grub_printf (_(" Booting a command list\n\n")); /* Execute the script, line for line. */ @@ -1176,6 +1177,6 @@ grub_menu_entry_run (grub_menu_entry_t entry) grub_cls (); grub_print_error (); grub_errno = GRUB_ERR_NONE; - grub_printf ("\nPress any key to continue..."); + grub_printf (_("\nPress any key to continue...")); (void) grub_getkey (); } diff --git a/normal/menu_text.c b/normal/menu_text.c index 4ff22e928..de28205de 100644 --- a/normal/menu_text.c +++ b/normal/menu_text.c @@ -39,7 +39,7 @@ static grub_uint8_t grub_color_menu_highlight; void grub_wait_after_message (void) { - grub_printf ("\nPress any key to continue..."); + grub_printf (_("\nPress any key to continue...")); (void) grub_getkey (); grub_putchar ('\n'); } @@ -87,22 +87,22 @@ print_message (int nested, int edit) if (edit) { - grub_printf ("\n\ + grub_printf (_("\n\ Minimum Emacs-like screen editing is supported. TAB lists\n\ completions. Press Ctrl-x to boot, Ctrl-c for a command-line\n\ - or ESC to return menu."); + or ESC to return menu.")); } else { grub_printf (_("\n\ Use the %C and %C keys to select which entry is highlighted.\n"), (grub_uint32_t) GRUB_TERM_DISP_UP, (grub_uint32_t) GRUB_TERM_DISP_DOWN); - grub_printf ("\ + grub_printf (_("\ Press enter to boot the selected OS, \'e\' to edit the\n\ - commands before booting or \'c\' for a command-line."); + commands before booting or \'c\' for a command-line.")); if (nested) - grub_printf ("\n\ - ESC to return previous menu."); + grub_printf (_("\n\ + ESC to return previous menu.")); } } @@ -517,7 +517,7 @@ static void notify_booting (grub_menu_entry_t entry, void *userdata __attribute__((unused))) { - grub_printf (" Booting \'%s\'\n\n", entry->title); + grub_printf (_(" Booting \'%s\'\n\n"), entry->title); } /* Callback invoked when a default menu entry executed because of a timeout @@ -527,7 +527,7 @@ static void notify_fallback (grub_menu_entry_t entry, void *userdata __attribute__((unused))) { - grub_printf ("\n Falling back to \'%s\'\n\n", entry->title); + grub_printf (_("\n Falling back to \'%s\'\n\n"), entry->title); grub_millisleep (DEFAULT_ENTRY_ERROR_DELAY_MS); } @@ -541,7 +541,7 @@ notify_execution_failure (void *userdata __attribute__((unused))) grub_print_error (); grub_errno = GRUB_ERR_NONE; } - grub_printf ("\n Failed to boot default entries.\n"); + grub_printf (_("\n Failed to boot default entries.\n")); grub_wait_after_message (); } From 9874f057590a90c39fbafd6faae768157da70200 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Sun, 22 Nov 2009 23:41:06 +0000 Subject: [PATCH 22/49] 2009-11-22 Carles Pina i Estany * normal/menu_text.c (get_spaces): New function. (print_timeout): Gettextize, add spaces to the localized string. --- normal/menu_text.c | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/normal/menu_text.c b/normal/menu_text.c index de28205de..524b6a7e9 100644 --- a/normal/menu_text.c +++ b/normal/menu_text.c @@ -262,12 +262,34 @@ get_entry_number (const char *name) return entry; } +static char* +get_spaces (int number_spaces) +{ + char* spaces = grub_malloc(number_spaces + 1); + int i; + + spaces[0] = '\0'; + + for (i=0;i Date: Mon, 23 Nov 2009 11:17:50 +0000 Subject: [PATCH 23/49] 2009-11-23 Robert Millan Based on patch from Bean (http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00384.html) * video/efi_fb.c: New file. * conf/i386-efi.rmk (pkglib_MODULES): Add `efi_fb.mod'. (efi_fb_mod_SOURCES, efi_fb_mod_CFLAGS, efi_fb_mod_LDFLAGS): New variables. * conf/x86_64-efi.rmk: Likewise. --- ChangeLog | 11 ++ conf/i386-efi.rmk | 5 + conf/x86_64-efi.rmk | 5 + video/efi_fb.c | 337 ++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 358 insertions(+) create mode 100644 video/efi_fb.c diff --git a/ChangeLog b/ChangeLog index 4a26413d4..21f891553 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2009-11-23 Robert Millan + + Based on patch from Bean + (http://lists.gnu.org/archive/html/grub-devel/2009-08/msg00384.html) + + * video/efi_fb.c: New file. + * conf/i386-efi.rmk (pkglib_MODULES): Add `efi_fb.mod'. + (efi_fb_mod_SOURCES, efi_fb_mod_CFLAGS, efi_fb_mod_LDFLAGS): New + variables. + * conf/x86_64-efi.rmk: Likewise. + 2009-11-22 Robert Millan * util/i386/pc/grub-mkimage.c: Ungettextize grub_util_info() strings. diff --git a/conf/i386-efi.rmk b/conf/i386-efi.rmk index 99ab06f64..39613d186 100644 --- a/conf/i386-efi.rmk +++ b/conf/i386-efi.rmk @@ -196,6 +196,11 @@ fixvideo_mod_SOURCES = commands/efi/fixvideo.c fixvideo_mod_CFLAGS = $(COMMON_CFLAGS) fixvideo_mod_LDFLAGS = $(COMMON_LDFLAGS) +pkglib_MODULES += efi_fb.mod +efi_fb_mod_SOURCES = video/efi_fb.c +efi_fb_mod_CFLAGS = $(COMMON_CFLAGS) +efi_fb_mod_LDFLAGS = $(COMMON_LDFLAGS) + pkglib_MODULES += xnu.mod xnu_mod_SOURCES = loader/xnu_resume.c loader/i386/xnu.c loader/i386/efi/xnu.c\ loader/macho.c loader/xnu.c loader/i386/xnu_helper.S diff --git a/conf/x86_64-efi.rmk b/conf/x86_64-efi.rmk index f536746ef..2e90dc428 100644 --- a/conf/x86_64-efi.rmk +++ b/conf/x86_64-efi.rmk @@ -201,6 +201,11 @@ fixvideo_mod_SOURCES = commands/efi/fixvideo.c fixvideo_mod_CFLAGS = $(COMMON_CFLAGS) fixvideo_mod_LDFLAGS = $(COMMON_LDFLAGS) +pkglib_MODULES += efi_fb.mod +efi_fb_mod_SOURCES = video/efi_fb.c +efi_fb_mod_CFLAGS = $(COMMON_CFLAGS) +efi_fb_mod_LDFLAGS = $(COMMON_LDFLAGS) + pkglib_MODULES += xnu.mod xnu_mod_SOURCES = loader/xnu_resume.c loader/i386/xnu.c loader/i386/efi/xnu.c\ loader/macho.c loader/xnu.c loader/i386/xnu_helper.S diff --git a/video/efi_fb.c b/video/efi_fb.c new file mode 100644 index 000000000..2faff12f9 --- /dev/null +++ b/video/efi_fb.c @@ -0,0 +1,337 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2005,2006,2007,2008,2009 Free Software Foundation, Inc. + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * GRUB is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with GRUB. If not, see . + */ + +#define grub_video_render_target grub_video_fbrender_target + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +static grub_efi_guid_t uga_draw_guid = GRUB_EFI_UGA_DRAW_GUID; +static struct grub_efi_uga_draw_protocol *uga; +static grub_uint32_t uga_fb; +static grub_uint32_t uga_pitch; + +static struct +{ + struct grub_video_mode_info mode_info; + struct grub_video_render_target *render_target; + grub_uint8_t *ptr; +} framebuffer; + +#define RGB_MASK 0xffffff +#define RGB_MAGIC 0x121314 +#define LINE_MIN 800 +#define LINE_MAX 4096 +#define FBTEST_STEP (0x10000 >> 2) +#define FBTEST_COUNT 8 + +static int +find_line_len (grub_uint32_t *fb_base, grub_uint32_t *line_len) +{ + grub_uint32_t *base = (grub_uint32_t *) (grub_target_addr_t) *fb_base; + int i; + + for (i = 0; i < FBTEST_COUNT; i++, base += FBTEST_STEP) + { + if ((*base & RGB_MASK) == RGB_MAGIC) + { + int j; + + for (j = LINE_MIN; j <= LINE_MAX; j++) + { + if ((base[j] & RGB_MASK) == RGB_MAGIC) + { + *fb_base = (grub_uint32_t) (grub_target_addr_t) base; + *line_len = j << 2; + + return 1; + } + } + + break; + } + } + + return 0; +} + +static int +find_framebuf (grub_uint32_t *fb_base, grub_uint32_t *line_len) +{ + int found = 0; + + auto int NESTED_FUNC_ATTR find_card (int bus, int dev, int func, + grub_pci_id_t pciid); + + int NESTED_FUNC_ATTR find_card (int bus, int dev, int func, + grub_pci_id_t pciid) + { + grub_pci_address_t addr; + + addr = grub_pci_make_address (bus, dev, func, 2); + if (grub_pci_read (addr) >> 24 == 0x3) + { + int i; + + grub_dprintf ("fb", "Display controller: %d:%d.%d\nDevice id: %x\n", + bus, dev, func, pciid); + addr += 8; + for (i = 0; i < 6; i++, addr += 4) + { + grub_uint32_t old_bar1, old_bar2, type; + grub_uint64_t base64; + + old_bar1 = grub_pci_read (addr); + if ((! old_bar1) || (old_bar1 & GRUB_PCI_ADDR_SPACE_IO)) + continue; + + type = old_bar1 & GRUB_PCI_ADDR_MEM_TYPE_MASK; + if (type == GRUB_PCI_ADDR_MEM_TYPE_64) + { + if (i == 5) + break; + + old_bar2 = grub_pci_read (addr + 4); + } + else + old_bar2 = 0; + + base64 = old_bar2; + base64 <<= 32; + base64 |= (old_bar1 & GRUB_PCI_ADDR_MEM_MASK); + + grub_dprintf ("fb", "%s(%d): 0x%llx\n", + ((old_bar1 & GRUB_PCI_ADDR_MEM_PREFETCH) ? + "VMEM" : "MMIO"), i, + (unsigned long long) base64); + + if ((old_bar1 & GRUB_PCI_ADDR_MEM_PREFETCH) && (! found)) + { + *fb_base = base64; + if (find_line_len (fb_base, line_len)) + found++; + } + + if (type == GRUB_PCI_ADDR_MEM_TYPE_64) + { + i++; + addr += 4; + } + } + } + + return found; + } + + grub_pci_iterate (find_card); + return found; +} + +static int +check_protocol (void) +{ + grub_efi_uga_draw_protocol_t *c; + + c = grub_efi_locate_protocol (&uga_draw_guid, 0); + if (c) + { + grub_uint32_t width, height, depth, rate, pixel; + int ret; + + if (efi_call_5 (c->get_mode, c, &width, &height, &depth, &rate)) + return 0; + + grub_efi_set_text_mode (0); + pixel = RGB_MAGIC; + efi_call_10 (c->blt, c, (struct grub_efi_uga_pixel *) &pixel, + GRUB_EFI_UGA_VIDEO_FILL, 0, 0, 0, 0, 1, height, 0); + ret = find_framebuf (&uga_fb, &uga_pitch); + grub_efi_set_text_mode (1); + + if (ret) + { + uga = c; + return 1; + } + } + + return 0; +} + +static grub_err_t +grub_video_efi_init (void) +{ + grub_memset (&framebuffer, 0, sizeof(framebuffer)); + return grub_video_fb_init (); +} + +static grub_err_t +grub_video_efi_fini (void) +{ + return grub_video_fb_fini (); +} + +static grub_err_t +grub_video_efi_setup (unsigned int width, unsigned int height, + unsigned int mode_type) +{ + unsigned int depth; + int found = 0; + + depth = (mode_type & GRUB_VIDEO_MODE_TYPE_DEPTH_MASK) + >> GRUB_VIDEO_MODE_TYPE_DEPTH_POS; + + { + grub_uint32_t w; + grub_uint32_t h; + grub_uint32_t d; + grub_uint32_t r; + + if ((! efi_call_5 (uga->get_mode, uga, &w, &h, &d, &r)) && + ((! width) || (width == w)) && + ((! height) || (height == h)) && + ((! depth) || (depth == d))) + { + framebuffer.mode_info.width = w; + framebuffer.mode_info.height = h; + framebuffer.mode_info.pitch = uga_pitch; + framebuffer.ptr = (grub_uint8_t *) (grub_target_addr_t) uga_fb; + + found = 1; + } + } + + if (found) + { + grub_err_t err; + + framebuffer.mode_info.mode_type = GRUB_VIDEO_MODE_TYPE_RGB; + framebuffer.mode_info.bpp = 32; + framebuffer.mode_info.bytes_per_pixel = 4; + framebuffer.mode_info.number_of_colors = 256; /* TODO: fix me. */ + framebuffer.mode_info.red_mask_size = 8; + framebuffer.mode_info.red_field_pos = 16; + framebuffer.mode_info.green_mask_size = 8; + framebuffer.mode_info.green_field_pos = 8; + framebuffer.mode_info.blue_mask_size = 8; + framebuffer.mode_info.blue_field_pos = 0; + framebuffer.mode_info.reserved_mask_size = 8; + framebuffer.mode_info.reserved_field_pos = 24; + + framebuffer.mode_info.blit_format = + grub_video_get_blit_format (&framebuffer.mode_info); + + err = grub_video_fb_create_render_target_from_pointer + (&framebuffer.render_target, + &framebuffer.mode_info, + framebuffer.ptr); + + if (err) + return err; + + err = grub_video_fb_set_active_render_target + (framebuffer.render_target); + + if (err) + return err; + + err = grub_video_fb_set_palette (0, GRUB_VIDEO_FBSTD_NUMCOLORS, + grub_video_fbstd_colors); + + return err; + } + + return grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching mode found."); +} + +static grub_err_t +grub_video_efi_swap_buffers (void) +{ + /* TODO: Implement buffer swapping. */ + return GRUB_ERR_NONE; +} + +static grub_err_t +grub_video_efi_set_active_render_target (struct grub_video_render_target *target) +{ + if (target == GRUB_VIDEO_RENDER_TARGET_DISPLAY) + target = framebuffer.render_target; + + return grub_video_fb_set_active_render_target (target); +} + +static grub_err_t +grub_video_efi_get_info_and_fini (struct grub_video_mode_info *mode_info, + void **framebuf) +{ + grub_memcpy (mode_info, &(framebuffer.mode_info), sizeof (*mode_info)); + *framebuf = (char *) framebuffer.ptr; + + grub_video_fb_fini (); + + return GRUB_ERR_NONE; +} + +static struct grub_video_adapter grub_video_efi_adapter = + { + .name = "EFI frame buffer driver", + + .init = grub_video_efi_init, + .fini = grub_video_efi_fini, + .setup = grub_video_efi_setup, + .get_info = grub_video_fb_get_info, + .get_info_and_fini = grub_video_efi_get_info_and_fini, + .set_palette = grub_video_fb_set_palette, + .get_palette = grub_video_fb_get_palette, + .set_viewport = grub_video_fb_set_viewport, + .get_viewport = grub_video_fb_get_viewport, + .map_color = grub_video_fb_map_color, + .map_rgb = grub_video_fb_map_rgb, + .map_rgba = grub_video_fb_map_rgba, + .unmap_color = grub_video_fb_unmap_color, + .fill_rect = grub_video_fb_fill_rect, + .blit_bitmap = grub_video_fb_blit_bitmap, + .blit_render_target = grub_video_fb_blit_render_target, + .scroll = grub_video_fb_scroll, + .swap_buffers = grub_video_efi_swap_buffers, + .create_render_target = grub_video_fb_create_render_target, + .delete_render_target = grub_video_fb_delete_render_target, + .set_active_render_target = grub_video_efi_set_active_render_target, + .get_active_render_target = grub_video_fb_get_active_render_target, + }; + +GRUB_MOD_INIT(efi_fb) +{ + if (check_protocol ()) + grub_video_register (&grub_video_efi_adapter); +} + +GRUB_MOD_FINI(efi_fb) +{ + if (uga) + grub_video_unregister (&grub_video_efi_adapter); +} From 57082942dd0afc122e65720e9961d1da883450cb Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Mon, 23 Nov 2009 12:18:37 +0000 Subject: [PATCH 24/49] Add auto-generated gcrypt files. --- .bzrignore | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.bzrignore b/.bzrignore index 999e44c95..0cb0cb457 100644 --- a/.bzrignore +++ b/.bzrignore @@ -13,6 +13,7 @@ config.log config.status configure conf/*.mk +conf/gcry.rmk *.d DISTLIST docs/*.info @@ -44,6 +45,7 @@ grub_setup_init.h *.img include/grub/cpu include/grub/machine +lib/libgcrypt-grub *.lst Makefile *.mod From ea1dd8bf0a3e4969af0e2685186b3932582ff1ad Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Mon, 23 Nov 2009 13:18:07 +0000 Subject: [PATCH 25/49] 2009-11-23 Robert Millan * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass --keyword=N_ to `$(XGETTEXT)'. * include/grub/i18n.h (N_): New macro. * util/mkisofs/mkisofs.h: Likewise. * util/mkisofs/mkisofs.c (ld_options): Wrap all translatable strings around N_(). (usage): Use gettext() to translate help strings when printing them. --- ChangeLog | 10 +++++ Makefile.in | 2 +- include/grub/i18n.h | 2 + util/mkisofs/mkisofs.c | 100 ++++++++++++++++++++--------------------- util/mkisofs/mkisofs.h | 1 + 5 files changed, 64 insertions(+), 51 deletions(-) diff --git a/ChangeLog b/ChangeLog index 21f891553..1952e6d42 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2009-11-23 Robert Millan + + * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass --keyword=N_ to + `$(XGETTEXT)'. + * include/grub/i18n.h (N_): New macro. + * util/mkisofs/mkisofs.h: Likewise. + * util/mkisofs/mkisofs.c (ld_options): Wrap all translatable strings + around N_(). + (usage): Use gettext() to translate help strings when printing them. + 2009-11-23 Robert Millan Based on patch from Bean diff --git a/Makefile.in b/Makefile.in index d9f107bef..17cf6209f 100644 --- a/Makefile.in +++ b/Makefile.in @@ -473,7 +473,7 @@ genkernsyms.sh: genkernsyms.sh.in config.status $(SHELL) ./config.status $(srcdir)/po/$(PACKAGE).pot: po/POTFILES po/POTFILES-shell - cd $(srcdir) && $(XGETTEXT) --from-code=utf-8 -o $@ -f $< --keyword=_ + cd $(srcdir) && $(XGETTEXT) --from-code=utf-8 -o $@ -f $< --keyword=_ --keyword=N_ cd $(srcdir) && $(XGETTEXT) --from-code=utf-8 -o $@ -f po/POTFILES-shell -j --language=Shell $(foreach lang, $(LINGUAS), $(srcdir)/po/$(lang).po): po/$(PACKAGE).pot diff --git a/include/grub/i18n.h b/include/grub/i18n.h index e436f6e28..99efb819a 100644 --- a/include/grub/i18n.h +++ b/include/grub/i18n.h @@ -27,4 +27,6 @@ # define _(str) str #endif +#define N_(str) str + #endif /* GRUB_I18N_H */ diff --git a/util/mkisofs/mkisofs.c b/util/mkisofs/mkisofs.c index 4ce69e035..4b43ba63b 100644 --- a/util/mkisofs/mkisofs.c +++ b/util/mkisofs/mkisofs.c @@ -200,107 +200,107 @@ struct ld_option static const struct ld_option ld_options[] = { { {"all-files", no_argument, NULL, 'a'}, - 'a', NULL, "Process all files (don't skip backup files)", ONE_DASH }, + 'a', NULL, N_("Process all files (don't skip backup files)"), ONE_DASH }, { {"abstract", required_argument, NULL, OPTION_ABSTRACT}, - '\0', "FILE", "Set Abstract filename" , ONE_DASH }, + '\0', "FILE", N_("Set Abstract filename"), ONE_DASH }, { {"appid", required_argument, NULL, 'A'}, - 'A', "ID", "Set Application ID" , ONE_DASH }, + 'A', "ID", N_("Set Application ID"), ONE_DASH }, { {"biblio", required_argument, NULL, OPTION_BIBLIO}, - '\0', "FILE", "Set Bibliographic filename" , ONE_DASH }, + '\0', "FILE", N_("Set Bibliographic filename"), ONE_DASH }, { {"copyright", required_argument, NULL, OPTION_COPYRIGHT}, - '\0', "FILE", "Set Copyright filename" , ONE_DASH }, + '\0', "FILE", N_("Set Copyright filename"), ONE_DASH }, { {"eltorito-boot", required_argument, NULL, 'b'}, - 'b', "FILE", "Set El Torito boot image name" , ONE_DASH }, + 'b', "FILE", N_("Set El Torito boot image name"), ONE_DASH }, { {"eltorito-catalog", required_argument, NULL, 'c'}, - 'c', "FILE", "Set El Torito boot catalog name" , ONE_DASH }, + 'c', "FILE", N_("Set El Torito boot catalog name"), ONE_DASH }, { {"boot-info-table", no_argument, NULL, OPTION_BOOT_INFO_TABLE }, - '\0', NULL, "Patch Boot Info Table in El Torito boot image" , ONE_DASH }, + '\0', NULL, N_("Patch Boot Info Table in El Torito boot image"), ONE_DASH }, { {"no-emul-boot", no_argument, NULL, OPTION_NO_EMUL_BOOT }, - '\0', NULL, "Dummy option for backward compatibility" , ONE_DASH }, + '\0', NULL, N_("Dummy option for backward compatibility"), ONE_DASH }, { {"eltorito-emul-floppy", no_argument, NULL, OPTION_ELTORITO_EMUL_FLOPPY }, - '\0', NULL, "Enable floppy drive emulation for El Torito" , TWO_DASHES }, + '\0', NULL, N_("Enable floppy drive emulation for El Torito"), TWO_DASHES }, { {"cdwrite-params", required_argument, NULL, 'C'}, - 'C', "PARAMS", "Magic parameters from cdrecord" , ONE_DASH }, + 'C', "PARAMS", N_("Magic parameters from cdrecord"), ONE_DASH }, { {"omit-period", no_argument, NULL, 'd'}, - 'd', NULL, "Omit trailing periods from filenames", ONE_DASH }, + 'd', NULL, N_("Omit trailing periods from filenames"), ONE_DASH }, { {"disable-deep-relocation", no_argument, NULL, 'D'}, - 'D', NULL, "Disable deep directory relocation", ONE_DASH }, + 'D', NULL, N_("Disable deep directory relocation"), ONE_DASH }, { {"follow-links", no_argument, NULL, 'f'}, - 'f', NULL, "Follow symbolic links", ONE_DASH }, + 'f', NULL, N_("Follow symbolic links"), ONE_DASH }, { {"help", no_argument, NULL, OPTION_HELP}, - '\0', NULL, "Print option help", ONE_DASH }, + '\0', NULL, N_("Print option help"), ONE_DASH }, { {"help", no_argument, NULL, OPTION_HELP}, - '\0', NULL, "Print option help", TWO_DASHES }, + '\0', NULL, N_("Print option help"), TWO_DASHES }, { {"version", no_argument, NULL, OPTION_VERSION}, - '\0', NULL, "Print version information and exit", TWO_DASHES }, + '\0', NULL, N_("Print version information and exit"), TWO_DASHES }, { {"hide", required_argument, NULL, OPTION_I_HIDE}, - '\0', "GLOBFILE", "Hide ISO9660/RR file" , ONE_DASH }, + '\0', "GLOBFILE", N_("Hide ISO9660/RR file"), ONE_DASH }, { {"hide-joliet", required_argument, NULL, OPTION_J_HIDE}, - '\0', "GLOBFILE", "Hide Joliet file" , ONE_DASH }, + '\0', "GLOBFILE", N_("Hide Joliet file"), ONE_DASH }, { {NULL, required_argument, NULL, 'i'}, - 'i', "ADD_FILES", "No longer supported" , TWO_DASHES }, + 'i', "ADD_FILES", N_("No longer supported"), TWO_DASHES }, { {"joliet", no_argument, NULL, 'J'}, - 'J', NULL, "Generate Joliet directory information", ONE_DASH }, + 'J', NULL, N_("Generate Joliet directory information"), ONE_DASH }, { {"full-iso9660-filenames", no_argument, NULL, 'l'}, - 'l', NULL, "Allow full 32 character filenames for iso9660 names", ONE_DASH }, + 'l', NULL, N_("Allow full 32 character filenames for iso9660 names"), ONE_DASH }, { {"allow-leading-dots", no_argument, NULL, 'L'}, - 'L', NULL, "Allow iso9660 filenames to start with '.'", ONE_DASH }, + 'L', NULL, N_("Allow iso9660 filenames to start with '.'"), ONE_DASH }, { {"log-file", required_argument, NULL, OPTION_LOG_FILE}, - '\0', "LOG_FILE", "Re-direct messages to LOG_FILE", ONE_DASH }, + '\0', "LOG_FILE", N_("Re-direct messages to LOG_FILE"), ONE_DASH }, { {"exclude", required_argument, NULL, 'm'}, - 'm', "GLOBFILE", "Exclude file name" , ONE_DASH }, + 'm', "GLOBFILE", N_("Exclude file name"), ONE_DASH }, { {"prev-session", required_argument, NULL, 'M'}, - 'M', "FILE", "Set path to previous session to merge" , ONE_DASH }, + 'M', "FILE", N_("Set path to previous session to merge"), ONE_DASH }, { {"omit-version-number", no_argument, NULL, 'N'}, - 'N', NULL, "Omit version number from iso9660 filename", ONE_DASH }, + 'N', NULL, N_("Omit version number from iso9660 filename"), ONE_DASH }, { {"no-split-symlink-components", no_argument, NULL, 0}, - 0, NULL, "Inhibit splitting symlink components" , ONE_DASH }, + 0, NULL, N_("Inhibit splitting symlink components"), ONE_DASH }, { {"no-split-symlink-fields", no_argument, NULL, 0}, - 0, NULL, "Inhibit splitting symlink fields" , ONE_DASH }, + 0, NULL, N_("Inhibit splitting symlink fields"), ONE_DASH }, { {"output", required_argument, NULL, 'o'}, - 'o', "FILE", "Set output file name" , ONE_DASH }, + 'o', "FILE", N_("Set output file name"), ONE_DASH }, { {"preparer", required_argument, NULL, 'p'}, - 'p', "PREP", "Set Volume preparer" , ONE_DASH }, + 'p', "PREP", N_("Set Volume preparer"), ONE_DASH }, { {"print-size", no_argument, NULL, OPTION_PRINT_SIZE}, - '\0', NULL, "Print estimated filesystem size and exit", ONE_DASH }, + '\0', NULL, N_("Print estimated filesystem size and exit"), ONE_DASH }, { {"publisher", required_argument, NULL, 'P'}, - 'P', "PUB", "Set Volume publisher" , ONE_DASH }, + 'P', "PUB", N_("Set Volume publisher"), ONE_DASH }, { {"quiet", no_argument, NULL, OPTION_QUIET}, - '\0', NULL, "Run quietly", ONE_DASH }, + '\0', NULL, N_("Run quietly"), ONE_DASH }, { {"rational-rock", no_argument, NULL, 'r'}, - 'r', NULL, "Generate rationalized Rock Ridge directory information", ONE_DASH }, + 'r', NULL, N_("Generate rationalized Rock Ridge directory information"), ONE_DASH }, { {"rock", no_argument, NULL, 'R'}, - 'R', NULL, "Generate Rock Ridge directory information", ONE_DASH }, + 'R', NULL, N_("Generate Rock Ridge directory information"), ONE_DASH }, { {"split-output", no_argument, NULL, OPTION_SPLIT_OUTPUT}, - '\0', NULL, "Split output into files of approx. 1GB size", ONE_DASH }, + '\0', NULL, N_("Split output into files of approx. 1GB size"), ONE_DASH }, { {"sysid", required_argument, NULL, OPTION_SYSID}, - '\0', "ID", "Set System ID" , ONE_DASH }, + '\0', "ID", N_("Set System ID"), ONE_DASH }, { {"translation-table", no_argument, NULL, 'T'}, - 'T', NULL, "Generate translation tables for systems that don't understand long filenames", ONE_DASH }, + 'T', NULL, N_("Generate translation tables for systems that don't understand long filenames"), ONE_DASH }, { {"verbose", no_argument, NULL, 'v'}, - 'v', NULL, "Verbose", ONE_DASH }, + 'v', NULL, N_("Verbose"), ONE_DASH }, { {"volid", required_argument, NULL, 'V'}, - 'V', "ID", "Set Volume ID" , ONE_DASH }, + 'V', "ID", N_("Set Volume ID"), ONE_DASH }, { {"volset", required_argument, NULL, OPTION_VOLSET}, - '\0', "ID", "Set Volume set ID" , ONE_DASH }, + '\0', "ID", N_("Set Volume set ID"), ONE_DASH }, { {"volset-size", required_argument, NULL, OPTION_VOLSET_SIZE}, - '\0', "#", "Set Volume set size" , ONE_DASH }, + '\0', "#", N_("Set Volume set size"), ONE_DASH }, { {"volset-seqno", required_argument, NULL, OPTION_VOLSET_SEQ_NUM}, - '\0', "#", "Set Volume set sequence number" , ONE_DASH }, + '\0', "#", N_("Set Volume set sequence number"), ONE_DASH }, { {"old-exclude", required_argument, NULL, 'x'}, - 'x', "FILE", "Exclude file name(depreciated)" , ONE_DASH }, + 'x', "FILE", N_("Exclude file name (deprecated)"), ONE_DASH }, #ifdef ERIC_neverdef { {"transparent-compression", no_argument, NULL, 'z'}, 'z', NULL, "Enable transparent compression of files", ONE_DASH }, #endif { {"creation-date", required_argument, NULL, OPTION_CREAT_DATE }, - '\0', NULL, "Override creation date", TWO_DASHES }, + '\0', NULL, N_("Override creation date"), TWO_DASHES }, { {"modification-date", required_argument, NULL, OPTION_MODIF_DATE }, - '\0', NULL, "Override modification date", TWO_DASHES }, + '\0', NULL, N_("Override modification date"), TWO_DASHES }, { {"expiration-date", required_argument, NULL, OPTION_EXPIR_DATE }, - '\0', NULL, "Override expiration date", TWO_DASHES }, + '\0', NULL, N_("Override expiration date"), TWO_DASHES }, { {"effective-date", required_argument, NULL, OPTION_EFFEC_DATE }, - '\0', NULL, "Override effective date", TWO_DASHES }, + '\0', NULL, N_("Override effective date"), TWO_DASHES }, }; #define OPTION_COUNT (sizeof ld_options / sizeof ld_options[0]) @@ -545,7 +545,7 @@ void usage(){ for (; len < 30; len++) putchar (' '); - printf ("%s\n", ld_options[i].doc); + printf ("%s\n", gettext (ld_options[i].doc)); } } exit(1); diff --git a/util/mkisofs/mkisofs.h b/util/mkisofs/mkisofs.h index 720baa7e6..a1638d80e 100644 --- a/util/mkisofs/mkisofs.h +++ b/util/mkisofs/mkisofs.h @@ -33,6 +33,7 @@ #include #include #define _(str) gettext(str) +#define N_(str) str /* This symbol is used to indicate that we do not have things like symlinks, devices, and so forth available. Just files and dirs */ From 26743e871b6c4707a0332ca72c0eb77e22a5ca14 Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Mon, 23 Nov 2009 15:19:43 +0000 Subject: [PATCH 26/49] Resync. --- po/ca.po | 274 +++++++++++++++++++++++++++++++++++++++---------------- 1 file changed, 194 insertions(+), 80 deletions(-) diff --git a/po/ca.po b/po/ca.po index 3f9b0ac32..a66c49f2e 100644 --- a/po/ca.po +++ b/po/ca.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: GNU GRUB\n" "Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2009-11-19 00:16+0100\n" +"POT-Creation-Date: 2009-11-23 14:14+0100\n" "PO-Revision-Date: 2009-11-17 12:26+0100\n" "Last-Translator: Robert Millan \n" "Language-Team: None \n" @@ -22,30 +22,10 @@ msgstr "" msgid "cannot compress the kernel image" msgstr "" -#: util/i386/pc/grub-mkimage.c:117 -#, c-format -msgid "the size of memory disk is 0x%x" -msgstr "" - -#: util/i386/pc/grub-mkimage.c:124 -#, c-format -msgid "the size of config file is 0x%x" -msgstr "" - -#: util/i386/pc/grub-mkimage.c:132 -#, c-format -msgid "the total module size is 0x%x" -msgstr "" - #: util/i386/pc/grub-mkimage.c:138 msgid "prefix is too long" msgstr "" -#: util/i386/pc/grub-mkimage.c:199 -#, c-format -msgid "the core size is 0x%x" -msgstr "" - #: util/i386/pc/grub-mkimage.c:206 msgid "the core image is too big" msgstr "" @@ -89,20 +69,10 @@ msgstr "" msgid "cannot open %s" msgstr "" -#: util/i386/pc/grub-setup.c:162 -#, c-format -msgid "the first sector is <%llu,%u,%u>" -msgstr "" - #: util/i386/pc/grub-setup.c:166 msgid "The first sector of the core file is not sector-aligned" msgstr "" -#: util/i386/pc/grub-setup.c:176 -#, c-format -msgid "saving <%llu,%u,%u> with the segment 0x%x" -msgstr "" - #: util/i386/pc/grub-setup.c:180 msgid "Non-sector-aligned data is found in the core file" msgstr "" @@ -126,11 +96,6 @@ msgstr "" msgid "The size of `%s' is too large" msgstr "" -#: util/i386/pc/grub-setup.c:247 -#, c-format -msgid "setting the root device to `%s'" -msgstr "" - #: util/i386/pc/grub-setup.c:261 #, c-format msgid "Unable to identify a filesystem in %s; safety check can't be performed" @@ -149,11 +114,6 @@ msgstr "" msgid "No DOS-style partitions found" msgstr "" -#: util/i386/pc/grub-setup.c:325 -#, c-format -msgid "dos partition is %d, bsd partition is %d" -msgstr "" - #: util/i386/pc/grub-setup.c:330 util/i386/pc/grub-setup.c:355 msgid "" "Attempting to install GRUB to a partitionless disk. This is a BAD idea." @@ -185,11 +145,6 @@ msgstr "" msgid "Your embedding area is unusually small. core.img won't fit in it." msgstr "" -#: util/i386/pc/grub-setup.c:381 -#, c-format -msgid "the core image will be embedded at sector 0x%llx" -msgstr "" - #: util/i386/pc/grub-setup.c:418 msgid "" "Embedding is not possible, but this is required when the root device is on a " @@ -217,30 +172,6 @@ msgstr "" msgid "attempting to read the core image `%s' from GRUB again" msgstr "" -#: util/i386/pc/grub-setup.c:449 -#, c-format -msgid "" -"succeeded in opening the core image but the size is different (%d != %d)" -msgstr "" - -#: util/i386/pc/grub-setup.c:453 -#, c-format -msgid "succeeded in opening the core image but cannot read %d bytes" -msgstr "" - -#: util/i386/pc/grub-setup.c:476 -msgid "succeeded in opening the core image but the data is different" -msgstr "" - -#: util/i386/pc/grub-setup.c:487 -msgid "couldn't open the core image" -msgstr "" - -#: util/i386/pc/grub-setup.c:490 -#, c-format -msgid "error message = %s" -msgstr "" - #: util/i386/pc/grub-setup.c:498 #, c-format msgid "Cannot read `%s' correctly" @@ -258,11 +189,6 @@ msgstr "" msgid "Failed to read the rest sectors of the core image" msgstr "" -#: util/i386/pc/grub-setup.c:544 -#, c-format -msgid "opening the core image `%s'" -msgstr "" - #: util/i386/pc/grub-setup.c:547 #, c-format msgid "Cannot open `%s'" @@ -310,11 +236,6 @@ msgstr "" msgid "Invalid root device `%s'" msgstr "" -#: util/i386/pc/grub-setup.c:766 -#, c-format -msgid "guessing the root device failed, because of `%s'" -msgstr "" - #: util/i386/pc/grub-setup.c:768 msgid "Cannot guess the root device. Specify the option ``--root-device''." msgstr "" @@ -451,6 +372,199 @@ msgstr "" msgid "Unexpected joliet directory length %d %d %s\n" msgstr "" +#: util/mkisofs/mkisofs.c:203 +msgid "Process all files (don't skip backup files)" +msgstr "" + +#: util/mkisofs/mkisofs.c:205 +msgid "Set Abstract filename" +msgstr "" + +#: util/mkisofs/mkisofs.c:207 +msgid "Set Application ID" +msgstr "" + +#: util/mkisofs/mkisofs.c:209 +msgid "Set Bibliographic filename" +msgstr "" + +#: util/mkisofs/mkisofs.c:211 +msgid "Set Copyright filename" +msgstr "" + +#: util/mkisofs/mkisofs.c:213 +msgid "Set El Torito boot image name" +msgstr "" + +#: util/mkisofs/mkisofs.c:215 +msgid "Set El Torito boot catalog name" +msgstr "" + +#: util/mkisofs/mkisofs.c:217 +msgid "Patch Boot Info Table in El Torito boot image" +msgstr "" + +#: util/mkisofs/mkisofs.c:219 +msgid "Dummy option for backward compatibility" +msgstr "" + +#: util/mkisofs/mkisofs.c:221 +msgid "Enable floppy drive emulation for El Torito" +msgstr "" + +#: util/mkisofs/mkisofs.c:223 +msgid "Magic parameters from cdrecord" +msgstr "" + +#: util/mkisofs/mkisofs.c:225 +msgid "Omit trailing periods from filenames" +msgstr "" + +#: util/mkisofs/mkisofs.c:227 +msgid "Disable deep directory relocation" +msgstr "" + +#: util/mkisofs/mkisofs.c:229 +msgid "Follow symbolic links" +msgstr "" + +#: util/mkisofs/mkisofs.c:231 util/mkisofs/mkisofs.c:233 +msgid "Print option help" +msgstr "" + +#: util/mkisofs/mkisofs.c:235 +msgid "Print version information and exit" +msgstr "" + +#: util/mkisofs/mkisofs.c:237 +msgid "Hide ISO9660/RR file" +msgstr "" + +#: util/mkisofs/mkisofs.c:239 +msgid "Hide Joliet file" +msgstr "" + +#: util/mkisofs/mkisofs.c:241 +msgid "No longer supported" +msgstr "" + +#: util/mkisofs/mkisofs.c:243 +msgid "Generate Joliet directory information" +msgstr "" + +#: util/mkisofs/mkisofs.c:245 +msgid "Allow full 32 character filenames for iso9660 names" +msgstr "" + +#: util/mkisofs/mkisofs.c:247 +msgid "Allow iso9660 filenames to start with '.'" +msgstr "" + +#: util/mkisofs/mkisofs.c:249 +msgid "Re-direct messages to LOG_FILE" +msgstr "" + +#: util/mkisofs/mkisofs.c:251 +msgid "Exclude file name" +msgstr "" + +#: util/mkisofs/mkisofs.c:253 +msgid "Set path to previous session to merge" +msgstr "" + +#: util/mkisofs/mkisofs.c:255 +msgid "Omit version number from iso9660 filename" +msgstr "" + +#: util/mkisofs/mkisofs.c:257 +msgid "Inhibit splitting symlink components" +msgstr "" + +#: util/mkisofs/mkisofs.c:259 +msgid "Inhibit splitting symlink fields" +msgstr "" + +#: util/mkisofs/mkisofs.c:261 +msgid "Set output file name" +msgstr "" + +#: util/mkisofs/mkisofs.c:263 +msgid "Set Volume preparer" +msgstr "" + +#: util/mkisofs/mkisofs.c:265 +msgid "Print estimated filesystem size and exit" +msgstr "" + +#: util/mkisofs/mkisofs.c:267 +msgid "Set Volume publisher" +msgstr "" + +#: util/mkisofs/mkisofs.c:269 +msgid "Run quietly" +msgstr "" + +#: util/mkisofs/mkisofs.c:271 +msgid "Generate rationalized Rock Ridge directory information" +msgstr "" + +#: util/mkisofs/mkisofs.c:273 +msgid "Generate Rock Ridge directory information" +msgstr "" + +#: util/mkisofs/mkisofs.c:275 +msgid "Split output into files of approx. 1GB size" +msgstr "" + +#: util/mkisofs/mkisofs.c:277 +msgid "Set System ID" +msgstr "" + +#: util/mkisofs/mkisofs.c:279 +msgid "" +"Generate translation tables for systems that don't understand long filenames" +msgstr "" + +#: util/mkisofs/mkisofs.c:281 +msgid "Verbose" +msgstr "" + +#: util/mkisofs/mkisofs.c:283 +msgid "Set Volume ID" +msgstr "" + +#: util/mkisofs/mkisofs.c:285 +msgid "Set Volume set ID" +msgstr "" + +#: util/mkisofs/mkisofs.c:287 +msgid "Set Volume set size" +msgstr "" + +#: util/mkisofs/mkisofs.c:289 +msgid "Set Volume set sequence number" +msgstr "" + +#: util/mkisofs/mkisofs.c:291 +msgid "Exclude file name (deprecated)" +msgstr "" + +#: util/mkisofs/mkisofs.c:297 +msgid "Override creation date" +msgstr "" + +#: util/mkisofs/mkisofs.c:299 +msgid "Override modification date" +msgstr "" + +#: util/mkisofs/mkisofs.c:301 +msgid "Override expiration date" +msgstr "" + +#: util/mkisofs/mkisofs.c:303 +msgid "Override effective date" +msgstr "" + #: util/mkisofs/mkisofs.c:373 #, c-format msgid "Using \"%s\"\n" From 4efeab03dca5a95c7ae7cd4f46ff3d5bba53ae68 Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Mon, 23 Nov 2009 15:23:55 +0000 Subject: [PATCH 27/49] 2009-11-23 Robert Millan * include/grub/parser.h (grub_parser_register): Document need of `name' parameter. * normal/main.c (grub_normal_read_line): Simplify prompt string. * script/sh/main.c (grub_sh_parser, GRUB_MOD_INIT(sh)): Rename "sh" to "grub". --- ChangeLog | 8 ++++++++ include/grub/parser.h | 1 + normal/main.c | 4 ++-- script/sh/main.c | 4 ++-- 4 files changed, 13 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 1952e6d42..dc9b160ac 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2009-11-23 Robert Millan + + * include/grub/parser.h (grub_parser_register): Document need + of `name' parameter. + * normal/main.c (grub_normal_read_line): Simplify prompt string. + * script/sh/main.c (grub_sh_parser, GRUB_MOD_INIT(sh)): Rename + "sh" to "grub". + 2009-11-23 Robert Millan * Makefile.in ($(srcdir)/po/$(PACKAGE).pot): Pass --keyword=N_ to diff --git a/include/grub/parser.h b/include/grub/parser.h index 4ee0e8389..41f768bba 100644 --- a/include/grub/parser.h +++ b/include/grub/parser.h @@ -88,6 +88,7 @@ grub_err_t EXPORT_FUNC(grub_parser_execute) (char *source); static inline void grub_parser_register (const char *name __attribute__ ((unused)), + /* `name' is ignored here, but used by genhandlerlist.sh. */ grub_parser_t parser) { grub_handler_register (&grub_parser_class, GRUB_AS_HANDLER (parser)); diff --git a/normal/main.c b/normal/main.c index 748eef805..2f19542e8 100644 --- a/normal/main.c +++ b/normal/main.c @@ -523,9 +523,9 @@ static grub_err_t grub_normal_read_line (char **line, int cont) { grub_parser_t parser = grub_parser_get_current (); - char prompt[8 + grub_strlen (parser->name)]; + char prompt[sizeof("> ") - 1 + grub_strlen (parser->name)]; - grub_sprintf (prompt, "%s:%s> ", parser->name, (cont) ? "" : "grub"); + grub_sprintf (prompt, "%s> ", parser->name); while (1) { diff --git a/script/sh/main.c b/script/sh/main.c index 4eefafa18..b5159dc7d 100644 --- a/script/sh/main.c +++ b/script/sh/main.c @@ -42,13 +42,13 @@ grub_normal_parse_line (char *line, grub_reader_getline_t getline) static struct grub_parser grub_sh_parser = { - .name = "sh", + .name = "grub", .parse_line = grub_normal_parse_line }; GRUB_MOD_INIT(sh) { - grub_parser_register ("sh", &grub_sh_parser); + grub_parser_register ("grub", &grub_sh_parser); } GRUB_MOD_FINI(sh) From f84b481b3510ed2292603b6f163e68f497ffc29b Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Mon, 23 Nov 2009 15:31:54 +0000 Subject: [PATCH 28/49] Cheery-pick grub-emu split from experimental (rev 1361) 2009-11-23 Robert Millan * configure.ac: Detect all `emu' platforms. Define GRUB_MACHINE_* macros in TARGET_CFLAGS. Remove --enable-grub-emu logic. Disable include/grub/machine symlink on `emu' platforms. * genkernsyms.sh.in: Use @TARGET_CFLAGS@ during symbol generation. * gensymlist.sh.in: Likewise. * include/grub/i386/coreboot/machine.h: Remove file. * include/grub/i386/efi/machine.h: Likewise. * include/grub/i386/ieee1275/machine.h: Likewise. * include/grub/i386/pc/machine.h: Likewise. * include/grub/i386/qemu/machine.h: Likewise. * include/grub/powerpc/ieee1275/machine.h: Likewise. * include/grub/sparc64/ieee1275/machine.h: Likewise. * include/grub/x86_64/efi/machine.h: Likewise. * commands/acpi.c: Remove `'. * commands/halt.c: Likewise. * commands/reboot.c: Likewise. * include/grub/autoefi.h: Likewise. * include/grub/i386/at_keyboard.h: Likewise. * include/grub/i386/kernel.h: Likewise. * include/grub/i386/loader.h: Likewise. * include/grub/i386/pc/memory.h: Likewise. * kern/dl.c: Likewise. * kern/i386/coreboot/init.c: Likewise. * loader/i386/bsd.c: Likewise. * loader/i386/linux.c: Likewise. * loader/multiboot_loader.c: Likewise. * term/i386/pc/serial.c: Likewise. * term/usb_keyboard.c: Likewise. * include/grub/time.h [!GRUB_MACHINE_EMU]: Remove `' [!GRUB_MACHINE_EMU] (GRUB_TICKS_PER_SECOND): New macro. * util/misc.c: Remove `' and `'. * Makefile.in (enable_grub_emu): Remove variable. Include $(srcdir)/conf/any-emu.mk for the `emu' platform. * conf/any-emu.rmk: New file. * conf/common.rmk (grub_emu_init.lst, grub_emu_init.h) (grub_emu_init.c): Move from here ... * conf/any-emu.rmk: ... to here. * conf/i386-coreboot.rmk (sbin_UTILITIES): Remove `grub-emu'. (grub_emu_SOURCES, grub_emu_LDFLAGS): Move from here ... * conf/any-emu.rmk: ... to here. --- ChangeLog | 53 +++++++++++++++ Makefile.in | 5 +- commands/acpi.c | 1 - commands/halt.c | 1 - commands/reboot.c | 1 - conf/any-emu.rmk | 89 +++++++++++++++++++++++++ conf/common.rmk | 13 ---- conf/i386-coreboot.rmk | 49 -------------- conf/i386-efi.rmk | 48 ------------- conf/i386-ieee1275.rmk | 48 ------------- conf/i386-pc.rmk | 56 ---------------- conf/powerpc-ieee1275.rmk | 49 -------------- conf/sparc64-ieee1275.rmk | 49 -------------- conf/x86_64-efi.rmk | 47 ------------- configure.ac | 64 +++++++++--------- genkernsyms.sh.in | 2 +- gensymlist.sh.in | 2 +- include/grub/autoefi.h | 1 - include/grub/i386/at_keyboard.h | 1 - include/grub/i386/coreboot/machine.h | 24 ------- include/grub/i386/efi/machine.h | 24 ------- include/grub/i386/ieee1275/machine.h | 24 ------- include/grub/i386/kernel.h | 1 - include/grub/i386/loader.h | 1 - include/grub/i386/pc/machine.h | 24 ------- include/grub/i386/pc/memory.h | 1 - include/grub/i386/qemu/machine.h | 24 ------- include/grub/powerpc/ieee1275/machine.h | 24 ------- include/grub/sparc64/ieee1275/machine.h | 24 ------- include/grub/time.h | 7 +- include/grub/x86_64/efi/machine.h | 24 ------- kern/dl.c | 1 - kern/i386/coreboot/init.c | 1 - loader/i386/bsd.c | 1 - loader/i386/linux.c | 1 - loader/multiboot_loader.c | 1 - term/i386/pc/serial.c | 1 - term/usb_keyboard.c | 1 - util/misc.c | 2 - 39 files changed, 186 insertions(+), 604 deletions(-) create mode 100644 conf/any-emu.rmk delete mode 100644 include/grub/i386/coreboot/machine.h delete mode 100644 include/grub/i386/efi/machine.h delete mode 100644 include/grub/i386/ieee1275/machine.h delete mode 100644 include/grub/i386/pc/machine.h delete mode 100644 include/grub/i386/qemu/machine.h delete mode 100644 include/grub/powerpc/ieee1275/machine.h delete mode 100644 include/grub/sparc64/ieee1275/machine.h delete mode 100644 include/grub/x86_64/efi/machine.h diff --git a/ChangeLog b/ChangeLog index dc9b160ac..555a702b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,56 @@ +2009-11-23 Robert Millan + + * configure.ac: Detect all `emu' platforms. Define + GRUB_MACHINE_* macros in TARGET_CFLAGS. Remove + --enable-grub-emu logic. Disable include/grub/machine + symlink on `emu' platforms. + + * genkernsyms.sh.in: Use @TARGET_CFLAGS@ during symbol generation. + * gensymlist.sh.in: Likewise. + + * include/grub/i386/coreboot/machine.h: Remove file. + * include/grub/i386/efi/machine.h: Likewise. + * include/grub/i386/ieee1275/machine.h: Likewise. + * include/grub/i386/pc/machine.h: Likewise. + * include/grub/i386/qemu/machine.h: Likewise. + * include/grub/powerpc/ieee1275/machine.h: Likewise. + * include/grub/sparc64/ieee1275/machine.h: Likewise. + * include/grub/x86_64/efi/machine.h: Likewise. + + * commands/acpi.c: Remove `'. + * commands/halt.c: Likewise. + * commands/reboot.c: Likewise. + * include/grub/autoefi.h: Likewise. + * include/grub/i386/at_keyboard.h: Likewise. + * include/grub/i386/kernel.h: Likewise. + * include/grub/i386/loader.h: Likewise. + * include/grub/i386/pc/memory.h: Likewise. + * kern/dl.c: Likewise. + * kern/i386/coreboot/init.c: Likewise. + * loader/i386/bsd.c: Likewise. + * loader/i386/linux.c: Likewise. + * loader/multiboot_loader.c: Likewise. + * term/i386/pc/serial.c: Likewise. + * term/usb_keyboard.c: Likewise. + + * include/grub/time.h [!GRUB_MACHINE_EMU]: Remove + `' + [!GRUB_MACHINE_EMU] (GRUB_TICKS_PER_SECOND): New macro. + * util/misc.c: Remove `' and + `'. + + * Makefile.in (enable_grub_emu): Remove variable. + Include $(srcdir)/conf/any-emu.mk for the `emu' platform. + + * conf/any-emu.rmk: New file. + * conf/common.rmk (grub_emu_init.lst, grub_emu_init.h) + (grub_emu_init.c): Move from here ... + * conf/any-emu.rmk: ... to here. + + * conf/i386-coreboot.rmk (sbin_UTILITIES): Remove `grub-emu'. + (grub_emu_SOURCES, grub_emu_LDFLAGS): Move from here ... + * conf/any-emu.rmk: ... to here. + 2009-11-23 Robert Millan * include/grub/parser.h (grub_parser_register): Document need diff --git a/Makefile.in b/Makefile.in index 17cf6209f..adab7ec0a 100644 --- a/Makefile.in +++ b/Makefile.in @@ -111,7 +111,6 @@ YACC = @YACC@ FONT_SOURCE = @FONT_SOURCE@ # Options. -enable_grub_emu = @enable_grub_emu@ enable_grub_emu_usb = @enable_grub_emu_usb@ enable_grub_fstest = @enable_grub_fstest@ enable_grub_pe2elf = @enable_grub_pe2elf@ @@ -153,7 +152,11 @@ $(addprefix $(srcdir)/,$(MKFILES)): %.mk: %.rmk genmk.rb $(RUBY) $(srcdir)/genmk.rb < $< > $@; \ fi +ifeq ($(platform), emu) +include $(srcdir)/conf/any-emu.mk +else include $(srcdir)/conf/$(target_cpu)-$(platform).mk +endif # For external modules. -include $(wildcard $(GRUB_CONTRIB)/*/conf/common.mk) diff --git a/commands/acpi.c b/commands/acpi.c index 9cfd8ef10..1a7bf8018 100644 --- a/commands/acpi.c +++ b/commands/acpi.c @@ -26,7 +26,6 @@ #include #include #include -#include #include #include diff --git a/commands/halt.c b/commands/halt.c index b902418a8..9a42938b4 100644 --- a/commands/halt.c +++ b/commands/halt.c @@ -18,7 +18,6 @@ */ #include -#include #include #if defined(GRUB_MACHINE_IEEE1275) diff --git a/commands/reboot.c b/commands/reboot.c index 11bceeb31..0b553b710 100644 --- a/commands/reboot.c +++ b/commands/reboot.c @@ -18,7 +18,6 @@ */ #include -#include #include #if defined(GRUB_MACHINE_IEEE1275) diff --git a/conf/any-emu.rmk b/conf/any-emu.rmk new file mode 100644 index 000000000..e8172b00d --- /dev/null +++ b/conf/any-emu.rmk @@ -0,0 +1,89 @@ +# -*- makefile -*- + +# Used by various components. These rules need to precede them. +script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h + +sbin_UTILITIES += grub-emu +util/grub-emu.c_DEPENDENCIES = grub_emu_init.h +grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ + commands/configfile.c commands/echo.c commands/help.c \ + commands/handler.c commands/ls.c commands/test.c \ + commands/search.c commands/blocklist.c commands/hexdump.c \ + lib/hexdump.c commands/halt.c commands/reboot.c \ + lib/envblk.c commands/loadenv.c \ + commands/gptsync.c commands/probe.c commands/xnu_uuid.c \ + commands/password.c commands/keystatus.c \ + disk/host.c disk/loopback.c disk/scsi.c \ + fs/fshelp.c \ + \ + io/gzio.c \ + kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \ + kern/err.c kern/list.c kern/handler.c \ + kern/command.c kern/corecmd.c commands/extcmd.c kern/file.c \ + kern/fs.c commands/boot.c kern/main.c kern/misc.c kern/parser.c \ + kern/partition.c kern/reader.c kern/term.c \ + kern/rescue_reader.c kern/rescue_parser.c \ + lib/arg.c normal/cmdline.c normal/datetime.c normal/misc.c \ + normal/handler.c normal/auth.c normal/autofs.c \ + normal/completion.c normal/main.c normal/color.c \ + normal/menu.c normal/menu_entry.c normal/menu_viewer.c \ + normal/menu_text.c \ + script/sh/main.c script/sh/execute.c script/sh/function.c \ + script/sh/lexer.c script/sh/script.c grub_script.tab.c \ + partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ + partmap/acorn.c partmap/gpt.c \ + \ + fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \ + fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \ + fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \ + fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c \ + fs/befs.c fs/befs_be.c fs/tar.c \ + \ + util/console.c util/hostfs.c util/grub-emu.c util/misc.c \ + util/hostdisk.c util/getroot.c \ + \ + disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ + disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ + commands/parttool.c parttool/msdospart.c \ + grub_emu_init.c + +ifeq ($(target_cpu), i386) +grub_emu_SOURCES += commands/i386/cpuid.c +endif + +grub_emu_LDFLAGS = $(LIBCURSES) + +ifeq ($(enable_grub_emu_usb), yes) +grub_emu_SOURCES += disk/usbms.c util/usb.c bus/usb/usb.c \ + commands/usbtest.c +grub_emu_LDFLAGS += $(LIBCURSES) $(LIBUSB) +endif + +grub_emu_init.lst: geninit.sh $(filter-out grub_emu_init.c,$(grub_emu_SOURCES)) + rm -f $@; grep GRUB_MOD_INIT $(filter %.c,$^) /dev/null > $@ +DISTCLEANFILES += grub_emu_init.lst + +grub_emu_init.h: grub_emu_init.lst $(filter-out grub_emu_init.c,$(grub_emu_SOURCES)) geninitheader.sh + rm -f $@; sh $(srcdir)/geninitheader.sh $< > $@ +DISTCLEANFILES += grub_emu_init.h + +grub_emu_init.c: grub_emu_init.lst $(filter-out grub_emu_init.c,$(grub_emu_SOURCES)) geninit.sh grub_emu_init.h + rm -f $@; sh $(srcdir)/geninit.sh $< $(filter %.c,$^) > $@ +DISTCLEANFILES += grub_emu_init.c + + + + +# FIXME: this could be shared with common.rmk + +# For grub-mkfont. +ifeq ($(enable_grub_mkfont), yes) +bin_UTILITIES += grub-mkfont +grub_mkfont_SOURCES = util/grub-mkfont.c util/misc.c +grub_mkfont_CFLAGS = $(freetype_cflags) +grub_mkfont_LDFLAGS = $(freetype_libs) +endif + +grub_script.tab.c grub_script.tab.h: script/sh/parser.y + $(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/script/sh/parser.y +DISTCLEANFILES += grub_script.tab.c grub_script.tab.h diff --git a/conf/common.rmk b/conf/common.rmk index 173f24b62..dc6d44d65 100644 --- a/conf/common.rmk +++ b/conf/common.rmk @@ -76,19 +76,6 @@ grub_script.tab.c grub_script.tab.h: script/sh/parser.y $(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/script/sh/parser.y DISTCLEANFILES += grub_script.tab.c grub_script.tab.h -# For grub-emu. -grub_emu_init.lst: geninit.sh $(filter-out grub_emu_init.c,$(grub_emu_SOURCES)) - rm -f $@; grep GRUB_MOD_INIT $(filter %.c,$^) /dev/null > $@ -DISTCLEANFILES += grub_emu_init.lst - -grub_emu_init.h: grub_emu_init.lst $(filter-out grub_emu_init.c,$(grub_emu_SOURCES)) geninitheader.sh - rm -f $@; sh $(srcdir)/geninitheader.sh $< > $@ -DISTCLEANFILES += grub_emu_init.h - -grub_emu_init.c: grub_emu_init.lst $(filter-out grub_emu_init.c,$(grub_emu_SOURCES)) geninit.sh grub_emu_init.h - rm -f $@; sh $(srcdir)/geninit.sh $< $(filter %.c,$^) > $@ -DISTCLEANFILES += grub_emu_init.c - # For grub-probe. grub_probe_init.lst: geninit.sh $(filter-out grub_probe_init.c,$(grub_probe_SOURCES)) rm -f $@; grep GRUB_MOD_INIT $(filter %.c,$^) /dev/null > $@ diff --git a/conf/i386-coreboot.rmk b/conf/i386-coreboot.rmk index c506e4153..74a7cc9c8 100644 --- a/conf/i386-coreboot.rmk +++ b/conf/i386-coreboot.rmk @@ -95,60 +95,11 @@ kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h genke # Utilities. sbin_UTILITIES = grub-mkdevicemap -ifeq ($(enable_grub_emu), yes) -sbin_UTILITIES += grub-emu -endif # For grub-mkdevicemap. grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/deviceiter.c \ util/devicemap.c util/misc.c -# For grub-emu. -util/grub-emu.c_DEPENDENCIES = grub_emu_init.h -grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ - commands/configfile.c commands/echo.c commands/help.c \ - commands/handler.c commands/ls.c commands/test.c \ - commands/search.c commands/blocklist.c commands/hexdump.c \ - commands/gptsync.c commands/probe.c commands/xnu_uuid.c \ - commands/password.c commands/keystatus.c \ - lib/hexdump.c commands/i386/cpuid.c \ - lib/envblk.c commands/loadenv.c \ - disk/host.c disk/loopback.c \ - \ - fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \ - fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \ - fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \ - fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c \ - fs/befs.c fs/befs_be.c fs/tar.c \ - \ - fs/fshelp.c \ - io/gzio.c \ - kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \ - kern/err.c kern/list.c kern/handler.c \ - kern/command.c kern/corecmd.c commands/extcmd.c kern/file.c \ - kern/fs.c commands/boot.c kern/main.c kern/misc.c kern/parser.c \ - kern/partition.c kern/reader.c kern/term.c \ - kern/rescue_reader.c kern/rescue_parser.c \ - lib/arg.c normal/cmdline.c normal/misc.c \ - normal/handler.c normal/auth.c normal/autofs.c \ - normal/completion.c normal/datetime.c normal/main.c \ - normal/menu_text.c \ - normal/menu.c normal/menu_entry.c normal/menu_viewer.c \ - normal/color.c \ - script/sh/main.c script/sh/execute.c script/sh/function.c \ - script/sh/lexer.c script/sh/script.c grub_script.tab.c \ - partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ - partmap/acorn.c partmap/gpt.c \ - util/console.c util/hostfs.c util/grub-emu.c util/misc.c \ - util/hostdisk.c util/getroot.c \ - \ - disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ - disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ - commands/parttool.c parttool/msdospart.c \ - grub_emu_init.c - -grub_emu_LDFLAGS = $(LIBCURSES) - sbin_SCRIPTS += grub-install grub_install_SOURCES = util/grub-install.in diff --git a/conf/i386-efi.rmk b/conf/i386-efi.rmk index 39613d186..13c3a5731 100644 --- a/conf/i386-efi.rmk +++ b/conf/i386-efi.rmk @@ -10,9 +10,6 @@ script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h # Utilities. bin_UTILITIES = grub-mkimage sbin_UTILITIES = grub-mkdevicemap -#ifeq ($(enable_grub_emu), yes) -#sbin_UTILITIES += grub-emu -#endif # For grub-mkimage. grub_mkimage_SOURCES = util/i386/efi/grub-mkimage.c util/misc.c \ @@ -31,51 +28,6 @@ util/i386/efi/grub-mkimage.c_DEPENDENCIES = Makefile grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/deviceiter.c \ util/devicemap.c util/misc.c -# For grub-emu. -util/grub-emu.c_DEPENDENCIES = grub_emu_init.h -grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ - commands/configfile.c commands/help.c \ - commands/handler.c commands/ls.c commands/test.c \ - commands/search.c commands/hexdump.c lib/hexdump.c \ - commands/halt.c commands/reboot.c commands/keystatus.c \ - commands/i386/cpuid.c \ - commands/password.c \ - lib/envblk.c commands/loadenv.c \ - disk/loopback.c \ - \ - fs/affs.c fs/cpio.c fs/ext2.c fs/fat.c fs/hfs.c \ - fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \ - fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \ - fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c \ - fs/befs.c fs/befs_be.c fs/tar.c \ - \ - io/gzio.c \ - kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \ - kern/err.c kern/list.c kern/handler.c \ - kern/command.c kern/corecmd.c commands/extcmd.c kern/file.c \ - kern/fs.c commands/boot.c kern/main.c kern/misc.c kern/parser.c \ - kern/partition.c kern/reader.c kern/term.c \ - kern/rescue_reader.c kern/rescue_parser.c \ - lib/arg.c normal/cmdline.c normal/command.c normal/datetime.c \ - normal/auth.c normal/autofs.c \ - normal/completion.c normal/context.c normal/main.c \ - normal/menu.c normal/menu_entry.c normal/menu_viewer.c \ - normal/menu_text.c \ - normal/color.c \ - script/sh/main.c script/sh/execute.c script/sh/function.c \ - script/sh/lexer.c script/sh/script.c grub_script.tab.c \ - partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ - partmap/acorn.c partmap/gpt.c \ - util/console.c util/hostfs.c util/grub-emu.c util/misc.c \ - util/hostdisk.c util/getroot.c \ - \ - disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ - disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ - commands/parttool.c parttool/msdospart.c \ - grub_emu_init.c - -grub_emu_LDFLAGS = $(LIBCURSES) - # Scripts. sbin_SCRIPTS = grub-install diff --git a/conf/i386-ieee1275.rmk b/conf/i386-ieee1275.rmk index 1eeba3af5..2d9532380 100644 --- a/conf/i386-ieee1275.rmk +++ b/conf/i386-ieee1275.rmk @@ -49,59 +49,11 @@ kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h genke # Utilities. sbin_UTILITIES = grub-mkdevicemap -ifeq ($(enable_grub_emu), yes) -sbin_UTILITIES += grub-emu -endif # For grub-mkdevicemap. grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/deviceiter.c \ util/devicemap.c util/misc.c -# For grub-emu. -util/grub-emu.c_DEPENDENCIES = grub_emu_init.h -grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ - commands/configfile.c commands/echo.c commands/help.c \ - commands/handler.c commands/ls.c commands/test.c \ - commands/search.c commands/blocklist.c commands/hexdump.c \ - lib/hexdump.c commands/halt.c commands/reboot.c \ - lib/envblk.c commands/loadenv.c \ - commands/gptsync.c commands/probe.c commands/xnu_uuid.c \ - commands/i386/cpuid.c \ - commands/password.c commands/keystatus.c \ - disk/host.c disk/loopback.c \ - \ - fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \ - fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \ - fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \ - fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c fs/befs.c \ - fs/befs_be.c fs/tar.c \ - \ - fs/fshelp.c \ - io/gzio.c \ - kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \ - kern/err.c kern/list.c kern/handler.c \ - kern/command.c kern/corecmd.c commands/extcmd.c kern/file.c \ - kern/fs.c commands/boot.c kern/main.c kern/misc.c kern/parser.c \ - kern/partition.c kern/reader.c kern/term.c \ - kern/rescue_reader.c kern/rescue_parser.c \ - lib/arg.c normal/cmdline.c normal/datetime.c normal/misc.c \ - normal/handler.c normal/auth.c normal/autofs.c \ - normal/completion.c normal/main.c normal/menu_text.c \ - normal/menu.c normal/menu_entry.c normal/menu_viewer.c \ - normal/color.c \ - script/sh/main.c script/sh/execute.c script/sh/function.c \ - script/sh/lexer.c script/sh/script.c grub_script.tab.c \ - partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ - partmap/acorn.c partmap/gpt.c \ - util/console.c util/hostfs.c util/grub-emu.c util/misc.c \ - util/hostdisk.c util/getroot.c \ - \ - disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ - disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ - grub_emu_init.c - -grub_emu_LDFLAGS = $(LIBCURSES) - # Scripts. sbin_SCRIPTS = grub-install diff --git a/conf/i386-pc.rmk b/conf/i386-pc.rmk index e1688ccd5..d4118526b 100644 --- a/conf/i386-pc.rmk +++ b/conf/i386-pc.rmk @@ -82,9 +82,6 @@ kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h genke # Utilities. bin_UTILITIES = grub-mkimage sbin_UTILITIES = grub-setup grub-mkdevicemap -ifeq ($(enable_grub_emu), yes) -sbin_UTILITIES += grub-emu -endif # For grub-mkimage. grub_mkimage_SOURCES = gnulib/progname.c util/i386/pc/grub-mkimage.c util/misc.c \ @@ -116,59 +113,6 @@ grub_setup_SOURCES = gnulib/progname.c \ grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/deviceiter.c \ util/devicemap.c util/misc.c -# For grub-emu. -util/grub-emu.c_DEPENDENCIES = grub_emu_init.h -grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ - commands/configfile.c commands/echo.c commands/help.c \ - commands/handler.c commands/ls.c commands/test.c \ - commands/search.c commands/blocklist.c commands/hexdump.c \ - lib/hexdump.c commands/i386/pc/halt.c commands/reboot.c \ - lib/envblk.c commands/loadenv.c \ - commands/gptsync.c commands/probe.c commands/xnu_uuid.c \ - commands/i386/cpuid.c \ - commands/password.c commands/keystatus.c \ - disk/host.c disk/loopback.c disk/scsi.c \ - fs/fshelp.c \ - \ - io/gzio.c \ - kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \ - kern/err.c kern/list.c kern/handler.c \ - kern/command.c kern/corecmd.c commands/extcmd.c kern/file.c \ - kern/fs.c commands/boot.c kern/main.c kern/misc.c kern/parser.c \ - kern/partition.c kern/reader.c kern/term.c \ - kern/rescue_reader.c kern/rescue_parser.c \ - lib/arg.c normal/cmdline.c normal/datetime.c normal/misc.c \ - normal/handler.c normal/auth.c normal/autofs.c \ - normal/completion.c normal/main.c normal/color.c \ - normal/menu.c normal/menu_entry.c normal/menu_viewer.c \ - normal/menu_text.c \ - script/sh/main.c script/sh/execute.c script/sh/function.c \ - script/sh/lexer.c script/sh/script.c grub_script.tab.c \ - partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ - partmap/acorn.c partmap/gpt.c \ - \ - fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \ - fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \ - fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \ - fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c \ - fs/befs.c fs/befs_be.c fs/tar.c \ - \ - util/console.c util/hostfs.c util/grub-emu.c util/misc.c \ - util/hostdisk.c util/getroot.c \ - \ - disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ - disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ - commands/parttool.c parttool/msdospart.c \ - grub_emu_init.c - -grub_emu_LDFLAGS = $(LIBCURSES) - -ifeq ($(enable_grub_emu_usb), yes) -grub_emu_SOURCES += disk/usbms.c util/usb.c bus/usb/usb.c \ - commands/usbtest.c -grub_emu_LDFLAGS += $(LIBCURSES) $(LIBUSB) -endif - sbin_SCRIPTS += grub-install grub_install_SOURCES = util/grub-install.in diff --git a/conf/powerpc-ieee1275.rmk b/conf/powerpc-ieee1275.rmk index ee7f9ec27..b8c62711b 100644 --- a/conf/powerpc-ieee1275.rmk +++ b/conf/powerpc-ieee1275.rmk @@ -30,60 +30,11 @@ pkglib_PROGRAMS = kernel.img # Utilities. sbin_UTILITIES = grub-mkdevicemap -ifeq ($(enable_grub_emu), yes) -sbin_UTILITIES += grub-emu -endif # For grub-mkdevicemap. grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/deviceiter.c \ util/devicemap.c util/misc.c -# For grub-emu -util/grub-emu.c_DEPENDENCIES = grub_emu_init.h -grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ - commands/configfile.c commands/help.c \ - commands/search.c commands/handler.c commands/test.c \ - commands/ls.c commands/blocklist.c commands/hexdump.c \ - lib/hexdump.c commands/halt.c commands/reboot.c \ - lib/envblk.c commands/loadenv.c \ - commands/gptsync.c commands/probe.c commands/xnu_uuid.c \ - commands/password.c commands/keystatus.c \ - disk/loopback.c \ - \ - fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \ - fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \ - fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \ - fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c \ - fs/befs.c fs/befs_be.c fs/tar.c \ - \ - io/gzio.c \ - kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \ - kern/err.c kern/file.c kern/fs.c commands/boot.c kern/main.c \ - kern/misc.c kern/parser.c kern/partition.c kern/reader.c \ - kern/rescue_reader.c kern/rescue_parser.c \ - kern/term.c kern/list.c kern/handler.c fs/fshelp.c \ - kern/command.c kern/corecmd.c commands/extcmd.c \ - lib/arg.c normal/cmdline.c normal/datetime.c \ - normal/completion.c normal/misc.c \ - normal/handler.c normal/auth.c normal/autofs.c normal/main.c \ - normal/menu.c \ - normal/menu_text.c \ - normal/menu_entry.c normal/menu_viewer.c \ - normal/color.c \ - script/sh/main.c script/sh/execute.c script/sh/function.c \ - script/sh/lexer.c script/sh/script.c \ - partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ - partmap/acorn.c \ - util/console.c util/hostfs.c util/grub-emu.c util/misc.c \ - util/hostdisk.c util/getroot.c \ - \ - disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ - disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ - commands/parttool.c parttool/msdospart.c \ - grub_script.tab.c grub_emu_init.c - -grub_emu_LDFLAGS = $(LIBCURSES) - kernel_img_SOURCES = kern/powerpc/ieee1275/startup.S kern/ieee1275/cmain.c \ kern/ieee1275/ieee1275.c kern/main.c kern/device.c \ kern/disk.c kern/dl.c kern/err.c kern/file.c kern/fs.c \ diff --git a/conf/sparc64-ieee1275.rmk b/conf/sparc64-ieee1275.rmk index 62e951a5e..945a33d3f 100644 --- a/conf/sparc64-ieee1275.rmk +++ b/conf/sparc64-ieee1275.rmk @@ -60,9 +60,6 @@ kernel_syms.lst: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h genke # Utilities. bin_UTILITIES = grub-mkimage sbin_UTILITIES = grub-setup grub-mkdevicemap grub-ofpathname -ifeq ($(enable_grub_emu), yes) -sbin_UTILITIES += grub-emu -endif # For grub-mkimage. grub_mkimage_SOURCES = util/sparc64/ieee1275/grub-mkimage.c util/misc.c \ @@ -96,52 +93,6 @@ grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/deviceiter.c \ grub_ofpathname_SOURCES = util/sparc64/ieee1275/grub-ofpathname.c \ util/ieee1275/ofpath.c util/misc.c -# For grub-emu -util/grub-emu.c_DEPENDENCIES = grub_emu_init.h -grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ - commands/configfile.c commands/help.c \ - commands/search.c commands/handler.c commands/test.c \ - commands/ls.c commands/blocklist.c commands/hexdump.c \ - lib/hexdump.c commands/halt.c commands/reboot.c \ - lib/envblk.c commands/loadenv.c \ - commands/gptsync.c commands/probe.c commands/xnu_uuid.c \ - commands/password.c commands/keystatus.c \ - disk/loopback.c \ - \ - fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \ - fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \ - fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \ - fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c \ - fs/befs.c fs/befs_be.c fs/tar.c \ - \ - io/gzio.c \ - kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \ - kern/err.c kern/file.c kern/fs.c commands/boot.c kern/main.c \ - kern/misc.c kern/parser.c kern/partition.c kern/reader.c \ - kern/rescue_reader.c kern/rescue_parser.c \ - kern/term.c kern/list.c kern/handler.c fs/fshelp.c \ - kern/command.c kern/corecmd.c commands/extcmd.c \ - lib/arg.c normal/cmdline.c normal/datetime.c \ - normal/completion.c normal/misc.c \ - normal/handler.c normal/auth.c normal/autofs.c normal/main.c \ - normal/menu.c \ - normal/menu_text.c \ - normal/menu_entry.c normal/menu_viewer.c \ - normal/color.c \ - script/sh/main.c script/sh/execute.c script/sh/function.c \ - script/sh/lexer.c script/sh/script.c \ - partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ - partmap/acorn.c \ - util/console.c util/hostfs.c util/grub-emu.c util/misc.c \ - util/hostdisk.c util/getroot.c \ - \ - disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ - disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ - commands/parttool.c parttool/msdospart.c \ - grub_script.tab.c grub_emu_init.c - -grub_emu_LDFLAGS = $(LIBCURSES) - # Scripts. sbin_SCRIPTS = grub-install diff --git a/conf/x86_64-efi.rmk b/conf/x86_64-efi.rmk index 2e90dc428..df32b0a5f 100644 --- a/conf/x86_64-efi.rmk +++ b/conf/x86_64-efi.rmk @@ -10,9 +10,6 @@ script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h # Utilities. bin_UTILITIES = grub-mkimage sbin_UTILITIES = grub-mkdevicemap -#ifeq ($(enable_grub_emu), yes) -#sbin_UTILITIES += grub-emu -#endif # For grub-mkimage. grub_mkimage_SOURCES = util/i386/efi/grub-mkimage.c util/misc.c \ @@ -30,50 +27,6 @@ grub_mkimage_SOURCES = util/i386/efi/grub-mkimage.c util/misc.c \ grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/deviceiter.c \ util/devicemap.c util/misc.c -# For grub-emu. -util/grub-emu.c_DEPENDENCIES = grub_emu_init.h -grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ - commands/configfile.c commands/help.c \ - commands/handler.c commands/ls.c commands/test.c \ - commands/search.c commands/hexdump.c lib/hexdump.c \ - commands/halt.c commands/reboot.c \ - commands/i386/cpuid.c \ - commands/password.c commands/keystatus.c \ - lib/envblk.c commands/loadenv.c \ - disk/loopback.c \ - \ - fs/affs.c fs/cpio.c fs/fat.c fs/ext2.c fs/hfs.c \ - fs/hfsplus.c fs/iso9660.c fs/udf.c fs/jfs.c fs/minix.c \ - fs/ntfs.c fs/ntfscomp.c fs/reiserfs.c fs/sfs.c \ - fs/ufs.c fs/ufs2.c fs/xfs.c fs/afs.c fs/afs_be.c \ - \ - io/gzio.c \ - kern/device.c kern/disk.c kern/dl.c kern/elf.c kern/env.c \ - kern/err.c kern/list.c kern/handler.c \ - kern/command.c kern/corecmd.c commands/extcmd.c kern/file.c \ - kern/fs.c commands/boot.c kern/main.c kern/misc.c kern/parser.c \ - kern/partition.c kern/readerescue.c kern/term.c \ - lib/arg.c normal/cmdline.c normal/misc.c normal/auth.c \ - normal/autofs.c \ - normal/completion.c normal/datetime.c normal/context.c \ - normal/main.c \ - normal/menu.c normal/menu_entry.c normal/menu_viewer.c \ - normal/menu_text.c \ - normal/color.c \ - script/sh/main.c script/sh/execute.c script/sh/function.c \ - script/sh/lexer.c script/sh/script.c grub_script.tab.c \ - partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ - partmap/acorn.c partmap/gpt.c \ - util/console.c util/hostfs.c util/grub-emu.c util/misc.c \ - util/hostdisk.c util/getroot.c \ - \ - disk/raid.c disk/raid5_recover.c disk/raid6_recover.c \ - disk/mdraid_linux.c disk/dmraid_nvidia.c disk/lvm.c \ - commands/parttool.c parttool/msdospart.c \ - grub_emu_init.c - -grub_emu_LDFLAGS = $(LIBCURSES) - # Scripts. sbin_SCRIPTS = grub-install diff --git a/configure.ac b/configure.ac index 383cb67a3..58b291d4f 100644 --- a/configure.ac +++ b/configure.ac @@ -91,6 +91,7 @@ case "$target_cpu"-"$platform" in i386-qemu) ;; powerpc-ieee1275) ;; sparc64-ieee1275) ;; + *-emu) ;; *) AC_MSG_ERROR([platform "$platform" is not supported for target CPU "$target_cpu"]) ;; esac @@ -113,6 +114,17 @@ case "$host_os" in cygwin) host_kernel=windows ;; esac +case "$platform" in + coreboot) machine_CFLAGS="-DGRUB_MACHINE_COREBOOT=1" ;; + efi) machine_CFLAGS="-DGRUB_MACHINE_EFI=1" ;; + ieee1275) machine_CFLAGS="-DGRUB_MACHINE_IEEE1275=1" ;; + qemu) machine_CFLAGS="-DGRUB_MACHINE_QEMU=1" ;; + pc) machine_CFLAGS="-DGRUB_MACHINE_PCBIOS=1" ;; + emu) machine_CFLAGS="-DGRUB_MACHINE_EMU=1" ;; +esac +CFLAGS="$CFLAGS $machine_CFLAGS" +TARGET_CFLAGS="$TARGET_CFLAGS $machine_CFLAGS" + AC_SUBST(host_cpu) AC_SUBST(host_os) AC_SUBST(host_kernel) @@ -509,40 +521,28 @@ AC_ARG_ENABLE([mm-debug], [AC_DEFINE([MM_DEBUG], [1], [Define to 1 if you enable memory manager debugging.])]) -AC_ARG_ENABLE([grub-emu], - [AS_HELP_STRING([--enable-grub-emu], - [build and install the `grub-emu' debugging utility (default=guessed)])]) AC_ARG_ENABLE([grub-emu-usb], [AS_HELP_STRING([--enable-grub-emu-usb], [build and install the `grub-emu' debugging utility with USB support (default=guessed)])]) -if test x"$enable_grub_emu" = xno ; then - grub_emu_excuse="explicitly disabled" -fi - [# Check for curses libraries.] -[if [ x"$grub_emu_excuse" = x ]; then ] +if test "$platform" = emu; then + missing_ncurses= +[# Check for curses libraries.] AC_CHECK_LIB([ncurses], [wgetch], [LIBCURSES="-lncurses"], [AC_CHECK_LIB([curses], [wgetch], [LIBCURSES="-lcurses"], - [grub_emu_excuse=["need (n)curses libraries"]])]) + [missing_ncurses=[true]])]) AC_SUBST([LIBCURSES]) -[fi] -[if [ x"$grub_emu_excuse" = x ]; then ] +[if [ x"$missing_ncurses" = x ]; then ] [# Check for headers.] AC_CHECK_HEADERS([ncurses/curses.h], [], [AC_CHECK_HEADERS([ncurses.h], [], [AC_CHECK_HEADERS([curses.h], [], - [grub_emu_excuse=["need (n)curses headers"]])])]) + [missing_ncurses=[true]])])]) [fi] +if test x"$missing_ncurses" = xtrue ; then + AC_MSG_ERROR([grub-emu can't be compiled without ncurses]) +fi -if test x"$enable_grub_emu" = xyes && test x"$grub_emu_excuse" != x ; then - AC_MSG_ERROR([grub-emu was explicitly requested but can't be compiled]) -fi -if test x"$grub_emu_excuse" = x ; then -enable_grub_emu=yes -else -enable_grub_emu=no -grub_emu_usb_excuse="grub-emu isn't built" -fi if test x"$enable_grub_emu_usb" = xno ; then grub_emu_usb_excuse="explicitly disabled" fi @@ -565,9 +565,8 @@ enable_grub_emu_usb=yes else enable_grub_emu_usb=no fi - -AC_SUBST([enable_grub_emu]) AC_SUBST([enable_grub_emu_usb]) +fi AC_ARG_ENABLE([grub-fstest], [AS_HELP_STRING([--enable-grub-fstest], @@ -615,14 +614,18 @@ AC_SUBST(ASFLAGS) # Output files. grub_CHECK_LINK_DIR if test x"$link_dir" = xyes ; then - AC_CONFIG_LINKS([include/grub/cpu:include/grub/$target_cpu - include/grub/machine:include/grub/$target_cpu/$platform]) + AC_CONFIG_LINKS([include/grub/cpu:include/grub/$target_cpu]) + if test "$platform" != emu ; then + AC_CONFIG_LINKS([include/grub/machine:include/grub/$target_cpu/$platform]) + fi else mkdir -p include/grub 2>/dev/null rm -rf include/grub/cpu cp -rp $srcdir/include/grub/$target_cpu include/grub/cpu 2>/dev/null - rm -rf include/grub/machine - cp -rp $srcdir/include/grub/$target_cpu/$platform include/grub/machine 2>/dev/null + if test "$platform" != emu ; then + rm -rf include/grub/machine + cp -rp $srcdir/include/grub/$target_cpu/$platform include/grub/machine 2>/dev/null + fi fi AC_CONFIG_FILES([Makefile gensymlist.sh genkernsyms.sh]) AC_CONFIG_FILES([stamp-h], [echo timestamp > stamp-h]) @@ -631,16 +634,13 @@ AC_OUTPUT echo "*******************************************************" echo GRUB2 will be compiled with following components: echo Platform: "$target_cpu"-"$platform" -if [ x"$grub_emu_excuse" = x ]; then -echo grub-emu: Yes -else -echo grub-emu: No "($grub_emu_excuse)" -fi +if [ x"$platform" = xemu ]; then if [ x"$grub_emu_usb_excuse" = x ]; then echo USB support for grub-emu: Yes else echo USB support for grub-emu: No "($grub_emu_usb_excuse)" fi +fi if [ x"$enable_mm_debug" = xyes ]; then echo With memory debugging: Yes else diff --git a/genkernsyms.sh.in b/genkernsyms.sh.in index 3dec5828d..b2f3f7af9 100644 --- a/genkernsyms.sh.in +++ b/genkernsyms.sh.in @@ -19,7 +19,7 @@ u= grep "^#define HAVE_ASM_USCORE" config.h >/dev/null 2>&1 && u="_" -$CC -DGRUB_SYMBOL_GENERATOR=1 -E -I. -Iinclude -I"$srcdir/include" $* \ +$CC @TARGET_CFLAGS@ -DGRUB_SYMBOL_GENERATOR=1 -E -I. -Iinclude -I"$srcdir/include" $* \ | grep -v '^#' \ | sed -n \ -e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/'"$u"'\1 kernel/;p;}' \ diff --git a/gensymlist.sh.in b/gensymlist.sh.in index 8f50b99ea..27fc5e61a 100644 --- a/gensymlist.sh.in +++ b/gensymlist.sh.in @@ -59,7 +59,7 @@ cat < #ifdef GRUB_MACHINE_EFI # include diff --git a/include/grub/i386/at_keyboard.h b/include/grub/i386/at_keyboard.h index 96b21627f..12d61608e 100644 --- a/include/grub/i386/at_keyboard.h +++ b/include/grub/i386/at_keyboard.h @@ -19,7 +19,6 @@ #ifndef GRUB_CPU_AT_KEYBOARD_HEADER #define GRUB_CPU_AT_KEYBOARD_HEADER 1 -#include #define SHIFT_L 0x2a #define SHIFT_R 0x36 diff --git a/include/grub/i386/coreboot/machine.h b/include/grub/i386/coreboot/machine.h deleted file mode 100644 index 8b7059005..000000000 --- a/include/grub/i386/coreboot/machine.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2007 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_MACHINE_MACHINE_HEADER -#define GRUB_MACHINE_MACHINE_HEADER 1 - -#define GRUB_MACHINE_COREBOOT 1 - -#endif /* ! GRUB_MACHINE_MACHINE_HEADER */ diff --git a/include/grub/i386/efi/machine.h b/include/grub/i386/efi/machine.h deleted file mode 100644 index 160076859..000000000 --- a/include/grub/i386/efi/machine.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2007 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_MACHINE_MACHINE_HEADER -#define GRUB_MACHINE_MACHINE_HEADER 1 - -#define GRUB_MACHINE_EFI 1 - -#endif /* ! GRUB_MACHINE_MACHINE_HEADER */ diff --git a/include/grub/i386/ieee1275/machine.h b/include/grub/i386/ieee1275/machine.h deleted file mode 100644 index 755eb33ae..000000000 --- a/include/grub/i386/ieee1275/machine.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2008 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_MACHINE_MACHINE_HEADER -#define GRUB_MACHINE_MACHINE_HEADER 1 - -#define GRUB_MACHINE_IEEE1275 1 - -#endif /* ! GRUB_MACHINE_MACHINE_HEADER */ diff --git a/include/grub/i386/kernel.h b/include/grub/i386/kernel.h index 74715e178..5514c8ccf 100644 --- a/include/grub/i386/kernel.h +++ b/include/grub/i386/kernel.h @@ -19,7 +19,6 @@ #ifndef GRUB_KERNEL_CPU_HEADER #define GRUB_KERNEL_CPU_HEADER 1 -#include #ifdef GRUB_MACHINE_IEEE1275 #define GRUB_MOD_ALIGN 0x1000 diff --git a/include/grub/i386/loader.h b/include/grub/i386/loader.h index b7fa413f1..0df5f757f 100644 --- a/include/grub/i386/loader.h +++ b/include/grub/i386/loader.h @@ -22,7 +22,6 @@ #include #include #include -#include extern grub_addr_t EXPORT_VAR(grub_os_area_addr); extern grub_size_t EXPORT_VAR(grub_os_area_size); diff --git a/include/grub/i386/pc/machine.h b/include/grub/i386/pc/machine.h deleted file mode 100644 index e6de7281a..000000000 --- a/include/grub/i386/pc/machine.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2007 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_MACHINE_MACHINE_HEADER -#define GRUB_MACHINE_MACHINE_HEADER 1 - -#define GRUB_MACHINE_PCBIOS 1 - -#endif /* ! GRUB_MACHINE_MACHINE_HEADER */ diff --git a/include/grub/i386/pc/memory.h b/include/grub/i386/pc/memory.h index 815390482..4ce3a6283 100644 --- a/include/grub/i386/pc/memory.h +++ b/include/grub/i386/pc/memory.h @@ -21,7 +21,6 @@ #define GRUB_MEMORY_MACHINE_HEADER 1 #include -#include #ifndef ASM_FILE #include #include diff --git a/include/grub/i386/qemu/machine.h b/include/grub/i386/qemu/machine.h deleted file mode 100644 index b57932b49..000000000 --- a/include/grub/i386/qemu/machine.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2009 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_MACHINE_MACHINE_HEADER -#define GRUB_MACHINE_MACHINE_HEADER 1 - -#define GRUB_MACHINE_QEMU 1 - -#endif /* ! GRUB_MACHINE_MACHINE_HEADER */ diff --git a/include/grub/powerpc/ieee1275/machine.h b/include/grub/powerpc/ieee1275/machine.h deleted file mode 100644 index 66da1d9e8..000000000 --- a/include/grub/powerpc/ieee1275/machine.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2007 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_MACHINE_MACHINE_HEADER -#define GRUB_MACHINE_MACHINE_HEADER 1 - -#define GRUB_MACHINE_IEEE1275 1 - -#endif /* ! GRUB_MACHINE_MACHINE_HEADER */ diff --git a/include/grub/sparc64/ieee1275/machine.h b/include/grub/sparc64/ieee1275/machine.h deleted file mode 100644 index 66da1d9e8..000000000 --- a/include/grub/sparc64/ieee1275/machine.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2007 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_MACHINE_MACHINE_HEADER -#define GRUB_MACHINE_MACHINE_HEADER 1 - -#define GRUB_MACHINE_IEEE1275 1 - -#endif /* ! GRUB_MACHINE_MACHINE_HEADER */ diff --git a/include/grub/time.h b/include/grub/time.h index 4dcd843de..115fbd95e 100644 --- a/include/grub/time.h +++ b/include/grub/time.h @@ -21,9 +21,14 @@ #include #include -#include #include +#ifdef GRUB_MACHINE_EMU +#define GRUB_TICKS_PER_SECOND 100000 +#else +#include +#endif + void EXPORT_FUNC(grub_millisleep) (grub_uint32_t ms); grub_uint64_t EXPORT_FUNC(grub_get_time_ms) (void); diff --git a/include/grub/x86_64/efi/machine.h b/include/grub/x86_64/efi/machine.h deleted file mode 100644 index 160076859..000000000 --- a/include/grub/x86_64/efi/machine.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * GRUB -- GRand Unified Bootloader - * Copyright (C) 2007 Free Software Foundation, Inc. - * - * GRUB is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * GRUB is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with GRUB. If not, see . - */ - -#ifndef GRUB_MACHINE_MACHINE_HEADER -#define GRUB_MACHINE_MACHINE_HEADER 1 - -#define GRUB_MACHINE_EFI 1 - -#endif /* ! GRUB_MACHINE_MACHINE_HEADER */ diff --git a/kern/dl.c b/kern/dl.c index 78ebc1e38..20ab1c5c2 100644 --- a/kern/dl.c +++ b/kern/dl.c @@ -31,7 +31,6 @@ #include #include #include -#include /* Platforms where modules are in a readonly area of memory. */ #if defined(GRUB_MACHINE_QEMU) diff --git a/kern/i386/coreboot/init.c b/kern/i386/coreboot/init.c index 0bf4934fb..550a2a60a 100644 --- a/kern/i386/coreboot/init.c +++ b/kern/i386/coreboot/init.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include diff --git a/loader/i386/bsd.c b/loader/i386/bsd.c index acc653c9e..6f2202a67 100644 --- a/loader/i386/bsd.c +++ b/loader/i386/bsd.c @@ -23,7 +23,6 @@ #include #include #include -#include #include #include #include diff --git a/loader/i386/linux.c b/loader/i386/linux.c index 4bdb09b24..82bfd6b95 100644 --- a/loader/i386/linux.c +++ b/loader/i386/linux.c @@ -17,7 +17,6 @@ */ #include -#include #include #include #include diff --git a/loader/multiboot_loader.c b/loader/multiboot_loader.c index 168e821c7..9078d0622 100644 --- a/loader/multiboot_loader.c +++ b/loader/multiboot_loader.c @@ -17,7 +17,6 @@ * along with GRUB. If not, see . */ -#include #include #include #include diff --git a/term/i386/pc/serial.c b/term/i386/pc/serial.c index 1d74dbbc8..3f1c6d062 100644 --- a/term/i386/pc/serial.c +++ b/term/i386/pc/serial.c @@ -16,7 +16,6 @@ * along with GRUB. If not, see . */ -#include #include #include #include diff --git a/term/usb_keyboard.c b/term/usb_keyboard.c index 76b9bc3d4..5d76c5e02 100644 --- a/term/usb_keyboard.c +++ b/term/usb_keyboard.c @@ -18,7 +18,6 @@ */ #include -#include #include #include #include diff --git a/util/misc.c b/util/misc.c index 37e75311e..799ffbf85 100644 --- a/util/misc.c +++ b/util/misc.c @@ -36,8 +36,6 @@ #include #include #include -#include -#include /* Include malloc.h, only if memalign is available. It is known that memalign is declared in malloc.h in all systems, if present. */ From f515aa622438fb461435efb078922d475f548838 Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Mon, 23 Nov 2009 15:37:33 +0000 Subject: [PATCH 29/49] 2009-11-23 Robert Millan * script/sh/execute.c: Move from here ... * script/execute.c: ... to here. Update all users. * script/sh/function.c: Move from here ... * script/function.c: ... to here. Update all users. * script/sh/lexer.c: Move from here ... * script/lexer.c: ... to here. Update all users. * script/sh/main.c: Move from here ... * script/main.c: ... to here. Update all users. * script/sh/parser.y: Move from here ... * script/parser.y: ... to here. Update all users. * script/sh/script.c: Move from here ... * script/script.c: ... to here. Update all users. --- ChangeLog | 15 +++++++++++++++ conf/any-emu.rmk | 10 +++++----- conf/common.rmk | 8 ++++---- conf/i386-coreboot.rmk | 2 +- conf/i386-efi.rmk | 2 +- conf/i386-ieee1275.rmk | 2 +- conf/i386-pc.rmk | 2 +- conf/powerpc-ieee1275.rmk | 2 +- conf/sparc64-ieee1275.rmk | 2 +- conf/x86_64-efi.rmk | 2 +- script/{sh => }/execute.c | 0 script/{sh => }/function.c | 0 script/{sh => }/lexer.c | 0 script/{sh => }/main.c | 0 script/{sh => }/parser.y | 0 script/{sh => }/script.c | 0 16 files changed, 31 insertions(+), 16 deletions(-) rename script/{sh => }/execute.c (100%) rename script/{sh => }/function.c (100%) rename script/{sh => }/lexer.c (100%) rename script/{sh => }/main.c (100%) rename script/{sh => }/parser.y (100%) rename script/{sh => }/script.c (100%) diff --git a/ChangeLog b/ChangeLog index 555a702b0..ceeb1081b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,18 @@ +2009-11-23 Robert Millan + + * script/sh/execute.c: Move from here ... + * script/execute.c: ... to here. Update all users. + * script/sh/function.c: Move from here ... + * script/function.c: ... to here. Update all users. + * script/sh/lexer.c: Move from here ... + * script/lexer.c: ... to here. Update all users. + * script/sh/main.c: Move from here ... + * script/main.c: ... to here. Update all users. + * script/sh/parser.y: Move from here ... + * script/parser.y: ... to here. Update all users. + * script/sh/script.c: Move from here ... + * script/script.c: ... to here. Update all users. + 2009-11-23 Robert Millan * configure.ac: Detect all `emu' platforms. Define diff --git a/conf/any-emu.rmk b/conf/any-emu.rmk index e8172b00d..268d9743e 100644 --- a/conf/any-emu.rmk +++ b/conf/any-emu.rmk @@ -1,7 +1,7 @@ # -*- makefile -*- # Used by various components. These rules need to precede them. -script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h +script/lexer.c_DEPENDENCIES = grub_script.tab.h sbin_UTILITIES += grub-emu util/grub-emu.c_DEPENDENCIES = grub_emu_init.h @@ -28,8 +28,8 @@ grub_emu_SOURCES = commands/minicmd.c commands/cat.c commands/cmp.c \ normal/completion.c normal/main.c normal/color.c \ normal/menu.c normal/menu_entry.c normal/menu_viewer.c \ normal/menu_text.c \ - script/sh/main.c script/sh/execute.c script/sh/function.c \ - script/sh/lexer.c script/sh/script.c grub_script.tab.c \ + script/main.c script/execute.c script/function.c \ + script/lexer.c script/script.c grub_script.tab.c \ partmap/amiga.c partmap/apple.c partmap/msdos.c partmap/sun.c \ partmap/acorn.c partmap/gpt.c \ \ @@ -84,6 +84,6 @@ grub_mkfont_CFLAGS = $(freetype_cflags) grub_mkfont_LDFLAGS = $(freetype_libs) endif -grub_script.tab.c grub_script.tab.h: script/sh/parser.y - $(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/script/sh/parser.y +grub_script.tab.c grub_script.tab.h: script/parser.y + $(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/script/parser.y DISTCLEANFILES += grub_script.tab.c grub_script.tab.h diff --git a/conf/common.rmk b/conf/common.rmk index dc6d44d65..00d579600 100644 --- a/conf/common.rmk +++ b/conf/common.rmk @@ -72,8 +72,8 @@ grub_mkfont_LDFLAGS = $(freetype_libs) endif # For the parser. -grub_script.tab.c grub_script.tab.h: script/sh/parser.y - $(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/script/sh/parser.y +grub_script.tab.c grub_script.tab.h: script/parser.y + $(YACC) -d -p grub_script_yy -b grub_script $(srcdir)/script/parser.y DISTCLEANFILES += grub_script.tab.c grub_script.tab.h # For grub-probe. @@ -525,8 +525,8 @@ normal_mod_CFLAGS = $(COMMON_CFLAGS) normal_mod_LDFLAGS = $(COMMON_LDFLAGS) # For sh.mod. -sh_mod_SOURCES = script/sh/main.c script/sh/script.c script/sh/execute.c \ - script/sh/function.c script/sh/lexer.c grub_script.tab.c +sh_mod_SOURCES = script/main.c script/script.c script/execute.c \ + script/function.c script/lexer.c grub_script.tab.c sh_mod_CFLAGS = $(COMMON_CFLAGS) sh_mod_LDFLAGS = $(COMMON_LDFLAGS) diff --git a/conf/i386-coreboot.rmk b/conf/i386-coreboot.rmk index 74a7cc9c8..5ab392a4d 100644 --- a/conf/i386-coreboot.rmk +++ b/conf/i386-coreboot.rmk @@ -5,7 +5,7 @@ COMMON_CFLAGS = -fno-builtin -mrtd -mregparm=3 -m32 COMMON_LDFLAGS = -m32 -nostdlib # Used by various components. These rules need to precede them. -script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h +script/lexer.c_DEPENDENCIES = grub_script.tab.h # Images. diff --git a/conf/i386-efi.rmk b/conf/i386-efi.rmk index 13c3a5731..ac88ebd42 100644 --- a/conf/i386-efi.rmk +++ b/conf/i386-efi.rmk @@ -5,7 +5,7 @@ COMMON_CFLAGS = -fno-builtin -m32 COMMON_LDFLAGS = -melf_i386 -nostdlib # Used by various components. These rules need to precede them. -script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h +script/lexer.c_DEPENDENCIES = grub_script.tab.h # Utilities. bin_UTILITIES = grub-mkimage diff --git a/conf/i386-ieee1275.rmk b/conf/i386-ieee1275.rmk index 2d9532380..2df3421f7 100644 --- a/conf/i386-ieee1275.rmk +++ b/conf/i386-ieee1275.rmk @@ -5,7 +5,7 @@ COMMON_CFLAGS = -ffreestanding -mrtd -mregparm=3 COMMON_LDFLAGS = -nostdlib # Used by various components. These rules need to precede them. -script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h +script/lexer.c_DEPENDENCIES = grub_script.tab.h # Images. pkglib_PROGRAMS = kernel.img diff --git a/conf/i386-pc.rmk b/conf/i386-pc.rmk index d4118526b..b100d94e2 100644 --- a/conf/i386-pc.rmk +++ b/conf/i386-pc.rmk @@ -7,7 +7,7 @@ COMMON_CFLAGS = -fno-builtin -mrtd -mregparm=3 -m32 COMMON_LDFLAGS = -m32 -nostdlib # Used by various components. These rules need to precede them. -script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h +script/lexer.c_DEPENDENCIES = grub_script.tab.h # Images. pkglib_IMAGES = boot.img cdboot.img diskboot.img kernel.img lnxboot.img \ diff --git a/conf/powerpc-ieee1275.rmk b/conf/powerpc-ieee1275.rmk index b8c62711b..0a87a6a5d 100644 --- a/conf/powerpc-ieee1275.rmk +++ b/conf/powerpc-ieee1275.rmk @@ -6,7 +6,7 @@ COMMON_CFLAGS = -ffreestanding COMMON_LDFLAGS += -nostdlib # Used by various components. These rules need to precede them. -script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h +script/lexer.c_DEPENDENCIES = grub_script.tab.h # Images. diff --git a/conf/sparc64-ieee1275.rmk b/conf/sparc64-ieee1275.rmk index 945a33d3f..3abddf511 100644 --- a/conf/sparc64-ieee1275.rmk +++ b/conf/sparc64-ieee1275.rmk @@ -6,7 +6,7 @@ COMMON_CFLAGS = -ffreestanding -m64 -mno-app-regs COMMON_LDFLAGS = -melf64_sparc -nostdlib -mno-relax # Used by various components. These rules need to precede them. -script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h +script/lexer.c_DEPENDENCIES = grub_script.tab.h # Images. pkglib_IMAGES = boot.img diskboot.img kernel.img diff --git a/conf/x86_64-efi.rmk b/conf/x86_64-efi.rmk index df32b0a5f..3d519e955 100644 --- a/conf/x86_64-efi.rmk +++ b/conf/x86_64-efi.rmk @@ -5,7 +5,7 @@ COMMON_CFLAGS = -fno-builtin -m64 COMMON_LDFLAGS = -melf_x86_64 -nostdlib # Used by various components. These rules need to precede them. -script/sh/lexer.c_DEPENDENCIES = grub_script.tab.h +script/lexer.c_DEPENDENCIES = grub_script.tab.h # Utilities. bin_UTILITIES = grub-mkimage diff --git a/script/sh/execute.c b/script/execute.c similarity index 100% rename from script/sh/execute.c rename to script/execute.c diff --git a/script/sh/function.c b/script/function.c similarity index 100% rename from script/sh/function.c rename to script/function.c diff --git a/script/sh/lexer.c b/script/lexer.c similarity index 100% rename from script/sh/lexer.c rename to script/lexer.c diff --git a/script/sh/main.c b/script/main.c similarity index 100% rename from script/sh/main.c rename to script/main.c diff --git a/script/sh/parser.y b/script/parser.y similarity index 100% rename from script/sh/parser.y rename to script/parser.y diff --git a/script/sh/script.c b/script/script.c similarity index 100% rename from script/sh/script.c rename to script/script.c From e2c37719a6c8277bdfa39bfc397f6e424750dedd Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Mon, 23 Nov 2009 20:22:36 +0000 Subject: [PATCH 30/49] Uncommits the last commits (to make the new merge with trunk easier) --- ChangeLog | 19 ------------------ normal/main.c | 5 +++-- normal/menu_entry.c | 5 +++-- normal/menu_text.c | 48 +++++++++++++++++++++++++++++++++------------ 4 files changed, 41 insertions(+), 36 deletions(-) diff --git a/ChangeLog b/ChangeLog index d9f2cee2a..4a26413d4 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,22 +1,3 @@ -2009-11-22 Carles Pina i Estany - - * conf/common.rmk: Add grub-gettext_lib target and updates - lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS, - LDFLAGS. - * gettext/gettext.c: New file. (Reads mo files). - * include/grub/file.h (grub_file_pread): New prototype. - * include/grub/i18n.h (_): New prototype. - * include/grub/misc.h (grub_gettext_dummy, grub_gettext): New - prototypes. - * kern/misc.c (grub_gettext_dummy): New function. - * menu/menu_text.c: Include . - * menu/menu_text.c (print_timeout): Gettexttize string. - * menu/menu_text.c (print_message): Gettexttize string. - * po/POTFILES: Add `normal/menu_text.c'. - * po/ca.po: Add new translations. - * util/grub.d/00_header.in: Define locale_dir and lang. insmod - gettext module and defines locale_dir and lang in grub.cfg. - 2009-11-22 Robert Millan * util/i386/pc/grub-mkimage.c: Ungettextize grub_util_info() strings. diff --git a/normal/main.c b/normal/main.c index 748eef805..afe3667f3 100644 --- a/normal/main.c +++ b/normal/main.c @@ -29,6 +29,7 @@ #include #include #include +#include #define GRUB_DEFAULT_HISTORY_SIZE 50 @@ -508,10 +509,10 @@ grub_normal_reader_init (void) grub_normal_init_page (); grub_setcursor (1); - grub_printf ("\ + grub_printf (_("\ [ Minimal BASH-like line editing is supported. For the first word, TAB\n\ lists possible command completions. Anywhere else TAB lists possible\n\ - device/file completions.%s ]\n\n", + device/file completions.%s ]\n\n"), reader_nested ? " ESC at any time exits." : ""); return 0; diff --git a/normal/menu_entry.c b/normal/menu_entry.c index 75a63779f..7478c33ae 100644 --- a/normal/menu_entry.c +++ b/normal/menu_entry.c @@ -24,6 +24,7 @@ #include #include #include +#include enum update_mode { @@ -996,7 +997,7 @@ run (struct screen *screen) } grub_cls (); - grub_printf (" Booting a command list\n\n"); + grub_printf (_(" Booting a command list\n\n")); /* Execute the script, line for line. */ @@ -1176,6 +1177,6 @@ grub_menu_entry_run (grub_menu_entry_t entry) grub_cls (); grub_print_error (); grub_errno = GRUB_ERR_NONE; - grub_printf ("\nPress any key to continue..."); + grub_printf (_("\nPress any key to continue...")); (void) grub_getkey (); } diff --git a/normal/menu_text.c b/normal/menu_text.c index 4ff22e928..524b6a7e9 100644 --- a/normal/menu_text.c +++ b/normal/menu_text.c @@ -39,7 +39,7 @@ static grub_uint8_t grub_color_menu_highlight; void grub_wait_after_message (void) { - grub_printf ("\nPress any key to continue..."); + grub_printf (_("\nPress any key to continue...")); (void) grub_getkey (); grub_putchar ('\n'); } @@ -87,22 +87,22 @@ print_message (int nested, int edit) if (edit) { - grub_printf ("\n\ + grub_printf (_("\n\ Minimum Emacs-like screen editing is supported. TAB lists\n\ completions. Press Ctrl-x to boot, Ctrl-c for a command-line\n\ - or ESC to return menu."); + or ESC to return menu.")); } else { grub_printf (_("\n\ Use the %C and %C keys to select which entry is highlighted.\n"), (grub_uint32_t) GRUB_TERM_DISP_UP, (grub_uint32_t) GRUB_TERM_DISP_DOWN); - grub_printf ("\ + grub_printf (_("\ Press enter to boot the selected OS, \'e\' to edit the\n\ - commands before booting or \'c\' for a command-line."); + commands before booting or \'c\' for a command-line.")); if (nested) - grub_printf ("\n\ - ESC to return previous menu."); + grub_printf (_("\n\ + ESC to return previous menu.")); } } @@ -262,12 +262,34 @@ get_entry_number (const char *name) return entry; } +static char* +get_spaces (int number_spaces) +{ + char* spaces = grub_malloc(number_spaces + 1); + int i; + + spaces[0] = '\0'; + + for (i=0;ititle); + grub_printf (_(" Booting \'%s\'\n\n"), entry->title); } /* Callback invoked when a default menu entry executed because of a timeout @@ -527,7 +549,7 @@ static void notify_fallback (grub_menu_entry_t entry, void *userdata __attribute__((unused))) { - grub_printf ("\n Falling back to \'%s\'\n\n", entry->title); + grub_printf (_("\n Falling back to \'%s\'\n\n"), entry->title); grub_millisleep (DEFAULT_ENTRY_ERROR_DELAY_MS); } @@ -541,7 +563,7 @@ notify_execution_failure (void *userdata __attribute__((unused))) grub_print_error (); grub_errno = GRUB_ERR_NONE; } - grub_printf ("\n Failed to boot default entries.\n"); + grub_printf (_("\n Failed to boot default entries.\n")); grub_wait_after_message (); } From 0fdb256813f47935bcd421efef6148fc45fddba6 Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Mon, 23 Nov 2009 20:30:56 +0000 Subject: [PATCH 31/49] 2009-11-23 Robert Millan * util/hostdisk.c: Include `'. (find_grub_drive): Use ARRAY_SIZE for map size calculation. (make_device_name): Rewrite using asprintf. (convert_system_partition_to_system_disk): Replace 0 with NULL. (find_system_device): If a device is not found, generate one just by reusing the OS path name. (read_device_map): Make it permissible for device.map not to exist. --- ChangeLog | 10 ++++++++ util/hostdisk.c | 66 ++++++++++++++++++++++++++----------------------- 2 files changed, 45 insertions(+), 31 deletions(-) diff --git a/ChangeLog b/ChangeLog index ceeb1081b..17b770968 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2009-11-23 Robert Millan + + * util/hostdisk.c: Include `'. + (find_grub_drive): Use ARRAY_SIZE for map size calculation. + (make_device_name): Rewrite using asprintf. + (convert_system_partition_to_system_disk): Replace 0 with NULL. + (find_system_device): If a device is not found, generate one just + by reusing the OS path name. + (read_device_map): Make it permissible for device.map not to exist. + 2009-11-23 Robert Millan * script/sh/execute.c: Move from here ... diff --git a/util/hostdisk.c b/util/hostdisk.c index e1058a100..04c412300 100644 --- a/util/hostdisk.c +++ b/util/hostdisk.c @@ -25,6 +25,7 @@ #include #include #include +#include #include #include @@ -127,7 +128,7 @@ find_grub_drive (const char *name) if (name) { - for (i = 0; i < sizeof (map) / sizeof (map[0]); i++) + for (i = 0; i < ARRAY_SIZE (map); i++) if (map[i].drive && ! strcmp (map[i].drive, name)) return i; } @@ -565,7 +566,10 @@ read_device_map (const char *dev_map) fp = fopen (dev_map, "r"); if (! fp) - grub_util_error ("Cannot open `%s'", dev_map); + { + grub_util_info (_("Cannot open `%s'"), dev_map); + return; + } while (fgets (buf, sizeof (buf), fp)) { @@ -670,34 +674,27 @@ grub_util_biosdisk_fini (void) static char * make_device_name (int drive, int dos_part, int bsd_part) { - int len = strlen(map[drive].drive); - char *p; + char *ret; + char *dos_part_str = NULL; + char *bsd_part_str = NULL; if (dos_part >= 0) - { - /* Add in char length of dos_part+1 */ - int tmp = dos_part + 1; - len++; - while ((tmp /= 10) != 0) - len++; - } - if (bsd_part >= 0) - len += 2; - - /* Length to alloc is: char length of map[drive].drive, plus - * char length of (dos_part+1) or of bsd_part, plus - * 2 for the comma and a null/end of string (\0) - */ - p = xmalloc (len + 2); - sprintf (p, "%s", map[drive].drive); - - if (dos_part >= 0) - sprintf (p + strlen (p), ",%d", dos_part + 1); + asprintf (&dos_part_str, ",%d", dos_part + 1); if (bsd_part >= 0) - sprintf (p + strlen (p), ",%c", bsd_part + 'a'); + asprintf (&bsd_part_str, ",%c", dos_part + 'a'); - return p; + asprintf (&ret, "%s%s%s", map[drive].drive, + dos_part_str ? : "", + bsd_part_str ? : ""); + + if (dos_part_str) + free (dos_part_str); + + if (bsd_part_str) + free (bsd_part_str); + + return ret; } static char * @@ -706,7 +703,7 @@ convert_system_partition_to_system_disk (const char *os_dev) #if defined(__linux__) char *path = xmalloc (PATH_MAX); if (! realpath (os_dev, path)) - return 0; + return NULL; if (strncmp ("/dev/", path, 5) == 0) { @@ -876,22 +873,29 @@ device_is_wholedisk (const char *os_dev) static int find_system_device (const char *os_dev) { - int i; + unsigned int i; char *os_disk; os_disk = convert_system_partition_to_system_disk (os_dev); if (! os_disk) return -1; - for (i = 0; i < (int) (sizeof (map) / sizeof (map[0])); i++) - if (map[i].device && strcmp (map[i].device, os_disk) == 0) + for (i = 0; i < ARRAY_SIZE (map); i++) + if (! map[i].device) + break; + else if (strcmp (map[i].device, os_disk) == 0) { free (os_disk); return i; } - free (os_disk); - return -1; + if (i == ARRAY_SIZE (map)) + grub_util_error (_("device count exceeds limit")); + + map[i].device = os_disk; + map[i].drive = xstrdup (os_disk); + + return i; } char * From 3db5183c2caf9135bc623ae7ff1239fbb11f6df7 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Mon, 23 Nov 2009 20:47:25 +0000 Subject: [PATCH 32/49] Adds gettext note in NEWS. --- NEWS | 2 ++ 1 file changed, 2 insertions(+) diff --git a/NEWS b/NEWS index 7c29cc948..bf7492c6d 100644 --- a/NEWS +++ b/NEWS @@ -1,5 +1,7 @@ New in 1.97 - : +* Add support for gettext. + * Add support for loading XNU (MacOS X kernel). * ACPI override support. From c3ea6bd46624d1724bab4528330d5f27f4b692c4 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Mon, 23 Nov 2009 20:59:24 +0000 Subject: [PATCH 33/49] Final touches before merging --- ChangeLog | 20 +++++++++++++++++++ normal/menu_text.c | 48 +++++++++++++--------------------------------- 2 files changed, 33 insertions(+), 35 deletions(-) diff --git a/ChangeLog b/ChangeLog index 17b770968..da59ff5da 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,23 @@ +2009-11-22 Carles Pina i Estany + + * conf/common.rmk: Add grub-gettext_lib target and updates + lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS, + LDFLAGS. + * gettext/gettext.c: New file. (Reads mo files). + * include/grub/file.h (grub_file_pread): New prototype. + * include/grub/i18n.h (_): New prototype. + * include/grub/misc.h (grub_gettext_dummy, grub_gettext): New + prototypes. + * kern/misc.c (grub_gettext_dummy): New function. + * normal/menu_text.c: Include . + * normal/menu_text.c (print_timeout): Gettexttize string. + * normal/menu_text.c (print_message): Gettexttize string. + * po/POTFILES: Add `normal/menu_text.c'. + * po/ca.po: Add new translations. + * util/grub.d/00_header.in: Define locale_dir and lang. insmod + gettext module and defines locale_dir and lang in grub.cfg. + * NEWS: Add gettext support. + 2009-11-23 Robert Millan * util/hostdisk.c: Include `'. diff --git a/normal/menu_text.c b/normal/menu_text.c index 524b6a7e9..4ff22e928 100644 --- a/normal/menu_text.c +++ b/normal/menu_text.c @@ -39,7 +39,7 @@ static grub_uint8_t grub_color_menu_highlight; void grub_wait_after_message (void) { - grub_printf (_("\nPress any key to continue...")); + grub_printf ("\nPress any key to continue..."); (void) grub_getkey (); grub_putchar ('\n'); } @@ -87,22 +87,22 @@ print_message (int nested, int edit) if (edit) { - grub_printf (_("\n\ + grub_printf ("\n\ Minimum Emacs-like screen editing is supported. TAB lists\n\ completions. Press Ctrl-x to boot, Ctrl-c for a command-line\n\ - or ESC to return menu.")); + or ESC to return menu."); } else { grub_printf (_("\n\ Use the %C and %C keys to select which entry is highlighted.\n"), (grub_uint32_t) GRUB_TERM_DISP_UP, (grub_uint32_t) GRUB_TERM_DISP_DOWN); - grub_printf (_("\ + grub_printf ("\ Press enter to boot the selected OS, \'e\' to edit the\n\ - commands before booting or \'c\' for a command-line.")); + commands before booting or \'c\' for a command-line."); if (nested) - grub_printf (_("\n\ - ESC to return previous menu.")); + grub_printf ("\n\ + ESC to return previous menu."); } } @@ -262,34 +262,12 @@ get_entry_number (const char *name) return entry; } -static char* -get_spaces (int number_spaces) -{ - char* spaces = grub_malloc(number_spaces + 1); - int i; - - spaces[0] = '\0'; - - for (i=0;ititle); + grub_printf (" Booting \'%s\'\n\n", entry->title); } /* Callback invoked when a default menu entry executed because of a timeout @@ -549,7 +527,7 @@ static void notify_fallback (grub_menu_entry_t entry, void *userdata __attribute__((unused))) { - grub_printf (_("\n Falling back to \'%s\'\n\n"), entry->title); + grub_printf ("\n Falling back to \'%s\'\n\n", entry->title); grub_millisleep (DEFAULT_ENTRY_ERROR_DELAY_MS); } @@ -563,7 +541,7 @@ notify_execution_failure (void *userdata __attribute__((unused))) grub_print_error (); grub_errno = GRUB_ERR_NONE; } - grub_printf (_("\n Failed to boot default entries.\n")); + grub_printf ("\n Failed to boot default entries.\n"); grub_wait_after_message (); } From 1eafb9b92bd65a1c0dbb64feca3d3bcbbf1304d4 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Mon, 23 Nov 2009 21:29:39 +0000 Subject: [PATCH 34/49] * Fixes date in the ChangeLog entry --- ChangeLog | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index da59ff5da..b9df15f84 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,4 +1,4 @@ -2009-11-22 Carles Pina i Estany +2009-11-23 Carles Pina i Estany * conf/common.rmk: Add grub-gettext_lib target and updates lib_DATA and CLEANFILES. Adds gettext.mod SOURCES, CFLAGS, From 662290ce76653df6164f52acf9bccb6df1e477e9 Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Mon, 23 Nov 2009 22:41:37 +0000 Subject: [PATCH 35/49] 2009-11-23 Robert Millan * po/id.po: New file. * LINGUAS: Add `id'. --- ChangeLog | 5 + po/LINGUAS | 1 + po/id.po | 880 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 886 insertions(+) create mode 100644 po/id.po diff --git a/ChangeLog b/ChangeLog index b9df15f84..decef53b0 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-23 Robert Millan + + * po/id.po: New file. + * LINGUAS: Add `id'. + 2009-11-23 Carles Pina i Estany * conf/common.rmk: Add grub-gettext_lib target and updates diff --git a/po/LINGUAS b/po/LINGUAS index 16fc6795f..2f4478d98 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1 +1,2 @@ ca +id diff --git a/po/id.po b/po/id.po new file mode 100644 index 000000000..d97cfb9e7 --- /dev/null +++ b/po/id.po @@ -0,0 +1,880 @@ +# Pesan Bahasa Indonesia untuk grub. +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Arif E. Nugroho , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20091122\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-11-22 11:48+0100\n" +"PO-Revision-Date: 2009-11-22 20:00+0700\n" +"Last-Translator: Arif E. Nugroho \n" +"Language-Team: Indonesian \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=ISO-8859-1\n" +"Content-Transfer-Encoding: 8bit\n" + +#: util/i386/pc/grub-mkimage.c:65 +msgid "the core image is too small" +msgstr "image core terlalu kecil" + +#: util/i386/pc/grub-mkimage.c:77 +msgid "cannot compress the kernel image" +msgstr "tidak dapat mengkompress image kernel" + +#: util/i386/pc/grub-mkimage.c:138 +msgid "prefix is too long" +msgstr "awalan terlalu panjang" + +#: util/i386/pc/grub-mkimage.c:206 +msgid "the core image is too big" +msgstr "image core terlalu besar" + +#: util/i386/pc/grub-mkimage.c:211 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "besar diskboot.img seharusnya %u bytes" + +#: util/i386/pc/grub-mkimage.c:284 +#, c-format +msgid "Core image is too big (%p > %p)\n" +msgstr "Image core terlalu besar (%p >%p)\n" + +#: util/i386/pc/grub-mkimage.c:321 util/i386/pc/grub-setup.c:587 +#, c-format +msgid "Try ``%s --help'' for more information.\n" +msgstr "Coba ``%s --help'' untuk informasi lebih lanjut.\n" + +#: util/i386/pc/grub-mkimage.c:323 +#, c-format +msgid "" +"Usage: grub-mkimage [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -c, --config=FILE embed FILE as boot config\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -h, --help display this message and exit\n" +" -V, --version print version information and exit\n" +" -v, --verbose print verbose messages\n" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"Penggunaan: grub-mkimage [PILIHAN]... [MODUL]\n" +"\n" +"Buat sebuah image GRUB yang dapat diboot.\n" +"\n" +" -d, --directory=DIR gunakan image dan modul dibawah DIR [baku=%s]\n" +" -p, --prefix=DIR set direktori grub_prefix [baku=%s]\n" +" -m, --memdisk=BERKAS tempatkan BERKAS sebagai sebuah image memdisk\n" +" -c, --config=BERKAS tempatkan BERKAS sebagai konfigurasi boot\n" +" -o, --output=BERKAS keluarkan sebuah image yang dihasilkan ke BERKAS [baku=stdout]\n" +" -h, --help tampilkan pesan ini dan keluar\n" +" -V, --version tampilkan informasi versi dan keluar\n" +" -v, --verbose tampilkan informasi secara detail\n" +"\n" +"Laporkan bugs ke <%s>.\n" + +#: util/i386/pc/grub-mkimage.c:429 +#, c-format +msgid "cannot open %s" +msgstr "tidak dapat membuka %s" + +#: util/i386/pc/grub-setup.c:166 +msgid "The first sector of the core file is not sector-aligned" +msgstr "Sektor pertama dari berkas core tidak selaras secara sektor" + +#: util/i386/pc/grub-setup.c:180 +msgid "Non-sector-aligned data is found in the core file" +msgstr "Sektor-tidak-selaras data ditemukan dalam berkas core" + +#: util/i386/pc/grub-setup.c:194 +msgid "The sectors of the core file are too fragmented" +msgstr "Sektor dari berkas core terlalu terpotong potong" + +#: util/i386/pc/grub-setup.c:205 +#, c-format +msgid "The size of `%s' is not %u" +msgstr "Ukuran dari `%s' bukan %u" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "The size of `%s' is too small" +msgstr "Ukuran dari `%s' terlalu kecil" + +#: util/i386/pc/grub-setup.c:224 +#, c-format +msgid "The size of `%s' is too large" +msgstr "Ukuran dari `%s' terlalu besar" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "Unable to identify a filesystem in %s; safety check can't be performed" +msgstr "Tidak dapat mengidentifikasikan sebuah sistem berkas dalam %s; pemeriksaan keamanan tidak dapat dilakukan" + +#: util/i386/pc/grub-setup.c:265 +#, c-format +msgid "%s appears to contain a %s filesystem which isn't known to reserve space for DOS-style boot. Installing GRUB there could result in FILESYSTEM DESTRUCTION if valuable data is overwritten by grub-setup (--skip-fs-probe disables this check, use at your own risk)" +msgstr "%s sepertinya berisi sebuah sistem berkas %s yang tidak diketahui untuk mereserve ruang untuk boot gaya-DOS. Memasang GRUB disana dapat berakibat KERUSAKAN SISTEM BERKAS jika data berharga dipaksa tulis oleh grub-setup (--skip-fs-probe menonaktifkan pemeriksaan ini, gunakan sesuai resiko anda)" + +#: util/i386/pc/grub-setup.c:314 +msgid "No DOS-style partitions found" +msgstr "Tidak ditemukan gaya partisi DOS" + +#: util/i386/pc/grub-setup.c:330 util/i386/pc/grub-setup.c:355 +msgid "Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "Mencoba memasang GRUB ke sebuah disk yang tidak berpartisi. Ini mungkin bukan ide baik." + +#: util/i386/pc/grub-setup.c:336 +msgid "Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea." +msgstr "Mencoba memasang GRUB ke sebuah partisi daripada MBR. Ini mungkin bukan ide baik." + +#: util/i386/pc/grub-setup.c:365 +msgid "This msdos-style partition label has no post-MBR gap; embedding won't be possible!" +msgstr "Label partisi gaya msdos ini tidak memiliki post-MBR gap; penempatan tidak memungkinkan!" + +#: util/i386/pc/grub-setup.c:367 +msgid "This GPT partition label has no BIOS Boot Partition; embedding won't be possible!" +msgstr "Label partisi GPT ini tidak memiliki partisi boot BIOS; penempatan tidak memungkinkan!" + +#: util/i386/pc/grub-setup.c:374 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "Besar core.img anda sangat besar. Ini tidak akan masuk dalam area penempatan." + +#: util/i386/pc/grub-setup.c:376 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "Penempatan anda sangat kecil. core.img tidak akan masuk disana." + +#: util/i386/pc/grub-setup.c:418 +msgid "Embedding is not possible, but this is required when the root device is on a RAID array or LVM volume." +msgstr "Penempatan tidak memungkinkan, tetapi ini dibutuhkan ketika perangkat root berada di sebuah array RAID atau volume LVM." + +#: util/i386/pc/grub-setup.c:421 +msgid "Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged." +msgstr "Penempatan tidak memungkinkan. GRUB hanya dapat dipasang di konfigurasi ini dengan menggunakan blocklists. Akan tetapi, blocklists TIDAK DAPAT DIJAGAKAN dan penggunaan ini tidak disarankan." + +#: util/i386/pc/grub-setup.c:425 +msgid "If you really want blocklists, use --force." +msgstr "Jika anda benar benar menginginkan blocklists, gunakan --force." + +#: util/i386/pc/grub-setup.c:439 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "mencoba untuk membaca image core `%s' dari GRUB" + +#: util/i386/pc/grub-setup.c:440 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "mencoba untuk membaca image core `%s' dari GRUB lagi" + +#: util/i386/pc/grub-setup.c:498 +#, c-format +msgid "Cannot read `%s' correctly" +msgstr "Tidak dapat membaca `%s' secara benar" + +#: util/i386/pc/grub-setup.c:511 +msgid "No terminator in the core image" +msgstr "Tidak ada pengakhir dalam image core" + +#: util/i386/pc/grub-setup.c:522 +msgid "Failed to read the first sector of the core image" +msgstr "Gagal untuk membaca sektor pertama dari core image" + +#: util/i386/pc/grub-setup.c:528 +msgid "Failed to read the rest sectors of the core image" +msgstr "Gagal untuk membaca sektor selanjutnya dari image core" + +#: util/i386/pc/grub-setup.c:547 +#, c-format +msgid "Cannot open `%s'" +msgstr "Tidak dapat membuka `%s'" + +#: util/i386/pc/grub-setup.c:589 +#, c-format +msgid "" +"Usage: grub-setup [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. ``(hd0,1)'').\n" +"\n" +" -b, --boot-image=FILE use FILE as the boot image [default=%s]\n" +" -c, --core-image=FILE use FILE as the core image [default=%s]\n" +" -d, --directory=DIR use GRUB files in the directory DIR [default=%s]\n" +" -m, --device-map=FILE use FILE as the device map [default=%s]\n" +" -r, --root-device=DEV use DEV as the root device [default=guessed]\n" +" -f, --force install even if problems are detected\n" +" -s, --skip-fs-probe do not probe for filesystems in DEVICE\n" +" -h, --help display this message and exit\n" +" -V, --version print version information and exit\n" +" -v, --verbose print verbose messages\n" +"\n" +"Report bugs to <%s>.\n" +msgstr "" +"Penggunaan: grub-setup [PILIHAN]... PERANGKAT\n" +"\n" +"Konfigurasi image untuk boot dari PERANGKAT.\n" +"PERANGKAT harus berupa sebuah perangkat GRUB (e.g. ``(hd0,1)'').\n" +"\n" +" -b, --boot-image=BERKAS gunakan BERKAS sebagai image boot [baku=%s]\n" +" -c, --core-image=BERKAS gunakan BERKAS sebagai image core [baku=%s]\n" +" -d, --directory=DIR gunakan berkas GRUB dalam direktori DIR [baku=%s]\n" +" -m, --device-map=BERKAS gunakan BERKAS sebagai peta perangkat [baku=%s]\n" +" -r, --root-device=DEV gunakan DEV sebagai perangkat root [baku=ditebak]\n" +" -f, --force pasang walaupun masalah terdeteksi\n" +" -s, --skip-fs-probe jangan periksa untuk sistem berkas dalam PERANGKAT\n" +" -h, --help tampilkan pesan bantuan ini dan keluar\n" +" -V, --version tampilkan informasi versi dan keluar\n" +" -v, --verbose tampilkan informasi secara detail\n" +"\n" +"Laporkan bugs ke <%s>.\n" + +#: util/i386/pc/grub-setup.c:719 +#, c-format +msgid "No device is specified.\n" +msgstr "Perangkat tidak dispesifikasikan.\n" + +#: util/i386/pc/grub-setup.c:725 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "Argumen ekstra `%s' tidak diketahui.\n" + +#: util/i386/pc/grub-setup.c:742 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "Perangkat `%s' tidak valid.\n" + +#: util/i386/pc/grub-setup.c:755 +#, c-format +msgid "Invalid root device `%s'" +msgstr "Perangkat root `%s' tidak valid" + +#: util/i386/pc/grub-setup.c:768 +msgid "Cannot guess the root device. Specify the option ``--root-device''." +msgstr "Tidak dapat menebak perangkat root. Spesifikasikan pilihan ``--root-device''." + +#: util/mkisofs/eltorito.c:96 +#, c-format +msgid "A boot catalog exists and appears corrupted.\n" +msgstr "Sebuah katalog boot ada dan mungkin terkorupsi.\n" + +#: util/mkisofs/eltorito.c:97 +#, c-format +msgid "Please check the following file: %s.\n" +msgstr "Mohon periksa berkas berikut: %s.\n" + +#: util/mkisofs/eltorito.c:98 +#, c-format +msgid "This file must be removed before a bootable CD can be done.\n" +msgstr "Berkas ini mungkin telah terhapus sebelum sebuah CD bootable dapat dilakukan.\n" + +#: util/mkisofs/eltorito.c:110 +#, c-format +msgid "Error creating boot catalog (%s)" +msgstr "Error membuat katalog boot (%s)" + +#: util/mkisofs/eltorito.c:114 +#, c-format +msgid "Error writing to boot catalog (%s)" +msgstr "Error menulis katalog boot (%s)" + +#: util/mkisofs/eltorito.c:144 +#, c-format +msgid "Boot catalog cannot be found!\n" +msgstr "Katalog boot tidak dapat ditemukan!\n" + +#: util/mkisofs/eltorito.c:158 +#, c-format +msgid "Boot image cannot be found!\n" +msgstr "Image boot tidak dapat ditemukan!\n" + +#: util/mkisofs/eltorito.c:221 +#, c-format +msgid "" +"\n" +"Size of boot image is %d sectors" +msgstr "" +"\n" +"Ukuran dari boot image adalah %d sektor" + +#: util/mkisofs/eltorito.c:227 +#, c-format +msgid "No emulation\n" +msgstr "Tidak ada emulasi\n" + +#: util/mkisofs/eltorito.c:235 +#, c-format +msgid "Emulating a 1.44 meg floppy\n" +msgstr "Mengemulasikan sebuah 1.44 meg floppy\n" + +#: util/mkisofs/eltorito.c:240 +#, c-format +msgid "Emulating a 2.88 meg floppy\n" +msgstr "Mengemulasikan sebuah 2.88 meg floppy\n" + +#: util/mkisofs/eltorito.c:245 +#, c-format +msgid "Emulating a 1.2 meg floppy\n" +msgstr "Mengemulasikan sebuah 1.2 meg floppy\n" + +#: util/mkisofs/eltorito.c:249 +#, c-format +msgid "" +"\n" +"Error - boot image is not the an allowable size.\n" +msgstr "" +"\n" +"Error - image boot tidak berukuran yang diperbolehkan.\n" + +#: util/mkisofs/eltorito.c:269 +msgid "Error opening boot catalog for update" +msgstr "Error membuka katalog boot untuk diperbarui" + +#: util/mkisofs/eltorito.c:275 util/mkisofs/eltorito.c:277 +msgid "Error writing to boot catalog" +msgstr "Error menulis ke katalog boot" + +#: util/mkisofs/eltorito.c:291 +#, c-format +msgid "Error opening boot image file '%s' for update" +msgstr "Error membuka berkas boot image '%s' untuk diperbarui" + +#: util/mkisofs/eltorito.c:299 +#, c-format +msgid "Odd alignment at non-end-of-file in boot image '%s'" +msgstr "Penyesuaian janggal di akhir-dari-berkas dalam image boot '%s'" + +#: util/mkisofs/eltorito.c:311 +#, c-format +msgid "Boot image file '%s' changed unexpectedly" +msgstr "Berkas image boot '%s' berubah secara tidak terduga" + +#: util/mkisofs/eltorito.c:323 +#, c-format +msgid "Error writing to boot image (%s)" +msgstr "Error menulis ke boot image (%s)" + +#: util/mkisofs/joliet.c:359 util/mkisofs/write.c:981 +#, c-format +msgid "Unable to generate sane path tables - too many directories (%d)\n" +msgstr "Tidak dapat menghasilkan tabel jalur yang masuk akal - terlalu banyak direktori (%d)\n" + +#: util/mkisofs/joliet.c:398 util/mkisofs/write.c:1017 +#, c-format +msgid "Entry %d not in path tables\n" +msgstr "Masukan %d tidak dalam tabel jalur\n" + +#: util/mkisofs/joliet.c:412 +#, c-format +msgid "Fatal goof - directory has amnesia\n" +msgstr "Fatal goof - direktori memiliki amnesia\n" + +#: util/mkisofs/joliet.c:478 +#, c-format +msgid "Joliet path table lengths do not match %d %d\n" +msgstr "Panjang tabel jalur joliet tidak cocok %d %d\n" + +#: util/mkisofs/joliet.c:530 +#, c-format +msgid "Unable to locate relocated directory\n" +msgstr "Tidak dapat menempatkan direktori yang ditempatkan\n" + +#: util/mkisofs/joliet.c:605 +#, c-format +msgid "Fatal goof - unable to find directory location\n" +msgstr "Fatal goof - tidak dapat menemukan lokasi direktori\n" + +#: util/mkisofs/joliet.c:654 +#, c-format +msgid "Unexpected joliet directory length %d %d %s\n" +msgstr "Panjang direktori joliet tidak terduga %d %d %s\n" + +#: util/mkisofs/mkisofs.c:373 +#, c-format +msgid "Using \"%s\"\n" +msgstr "Menggunakan \"%s\"\n" + +#: util/mkisofs/mkisofs.c:401 +#, c-format +msgid "%s:%d: name required\n" +msgstr "%s:%d: nama dibutuhkan\n" + +#: util/mkisofs/mkisofs.c:411 +#, c-format +msgid "%s:%d: equals sign required\n" +msgstr "%s:%d: tanda sama dibutuhkan\n" + +#: util/mkisofs/mkisofs.c:445 +#, c-format +msgid "%s:%d: field name \"%s\" unknown\n" +msgstr "%s:%d: nama daerah \"%s\" tidak diketahui\n" + +#: util/mkisofs/mkisofs.c:474 +#, c-format +msgid "Usage: %s [options] file...\n" +msgstr "Penggunaan: %s [pilihan] berkas...\n" + +#: util/mkisofs/mkisofs.c:476 +#, c-format +msgid "Options:\n" +msgstr "Pilihan:\n" + +#: util/mkisofs/mkisofs.c:706 +#, c-format +msgid "-i option no longer supported.\n" +msgstr "pilihan -i tidak lagi didukung.\n" + +#: util/mkisofs/mkisofs.c:720 +#, c-format +msgid "Required boot image pathname missing\n" +msgstr "Nama jalur boot image yang dibutuhkan hilang\n" + +#: util/mkisofs/mkisofs.c:729 +#, c-format +msgid "Required boot catalog pathname missing\n" +msgstr "Nama jalur katalog boot yang dibutuhkan hilang\n" + +#: util/mkisofs/mkisofs.c:737 +#, c-format +msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +msgstr "Mengabaikan -no-emul-boot (no-emulation adalah perilaku baku)\n" + +#: util/mkisofs/mkisofs.c:746 +#, c-format +msgid "Abstract filename string too long\n" +msgstr "String nama berkas abstrak terlalu panjang\n" + +#: util/mkisofs/mkisofs.c:754 +#, c-format +msgid "Application-id string too long\n" +msgstr "String ID-Aplikasi terlalu panjang\n" + +#: util/mkisofs/mkisofs.c:762 +#, c-format +msgid "Bibliographic filename string too long\n" +msgstr "String nama berkas bibliographic terlalu panjang\n" + +#: util/mkisofs/mkisofs.c:770 +#, c-format +msgid "Copyright filename string too long\n" +msgstr "String nama berkas Hak Cipta terlalu panjang\n" + +#: util/mkisofs/mkisofs.c:805 +#, c-format +msgid "Preparer string too long\n" +msgstr "String penyiap terlalu panjang\n" + +#: util/mkisofs/mkisofs.c:816 +#, c-format +msgid "Publisher string too long\n" +msgstr "String penerbit terlalu panjang\n" + +#: util/mkisofs/mkisofs.c:837 +#, c-format +msgid "System ID string too long\n" +msgstr "String ID sistem terlalu panjang\n" + +#: util/mkisofs/mkisofs.c:848 +#, c-format +msgid "Volume ID string too long\n" +msgstr "String ID volume terlalu penjang\n" + +#: util/mkisofs/mkisofs.c:856 +#, c-format +msgid "Volume set ID string too long\n" +msgstr "String ID set volume terlalu panjang\n" + +#: util/mkisofs/mkisofs.c:867 +#, c-format +msgid "Volume set sequence number too big\n" +msgstr "Set urutan nomor volume terlalu besar\n" + +#: util/mkisofs/mkisofs.c:909 util/mkisofs/mkisofs.c:919 +#: util/mkisofs/mkisofs.c:929 util/mkisofs/mkisofs.c:939 +#, c-format +msgid "date string must be 16 characters.\n" +msgstr "string tanggal harus berupa 16 karakter.\n" + +#: util/mkisofs/mkisofs.c:958 +msgid "Warning: getrlimit" +msgstr "Peringatan: getrlimit" + +#: util/mkisofs/mkisofs.c:962 +msgid "Warning: setrlimit" +msgstr "Peringatan: setrlimit" + +#: util/mkisofs/mkisofs.c:978 +#, c-format +msgid "Multisession usage bug: Must specify -C if -M is used.\n" +msgstr "Bug penggunaan multi sesi: Harus menspesifikasikan -C jika -M digunakan.\n" + +#: util/mkisofs/mkisofs.c:984 +#, c-format +msgid "Warning: -C specified without -M: old session data will not be merged.\n" +msgstr "Peringatan: -C dispesifikasikan tanpa -M: data sesi lama tidak akan digabungkan.\n" + +#: util/mkisofs/mkisofs.c:1023 +#, c-format +msgid "can't open logfile: %s" +msgstr "tidak dapat membuka berkas log: %s" + +#: util/mkisofs/mkisofs.c:1027 +#, c-format +msgid "re-directing all messages to %s\n" +msgstr "menredireksikan seluruh pesan ke %s\n" + +#: util/mkisofs/mkisofs.c:1032 +#, c-format +msgid "can't open logfile: %s\n" +msgstr "tidak dapat membuka berkas log: %s\n" + +#: util/mkisofs/mkisofs.c:1073 +#, c-format +msgid "Unable to open previous session image %s\n" +msgstr "Tidak dapat membuka sesi image sebelumnya %s\n" + +#: util/mkisofs/mkisofs.c:1184 +#, c-format +msgid "Invalid node - %s\n" +msgstr "Node tidak valid -%s\n" + +#: util/mkisofs/mkisofs.c:1246 +msgid "Joliet tree sort failed.\n" +msgstr "Pengurutan pohon joliet gagal.\n" + +#: util/mkisofs/mkisofs.c:1261 +msgid "Unable to open /dev/null\n" +msgstr "Tidak dapat membuka /dev/null\n" + +#: util/mkisofs/mkisofs.c:1265 +msgid "Unable to open disc image file\n" +msgstr "Tidak dapat membuka berkas image disk\n" + +#: util/mkisofs/mkisofs.c:1387 +#, c-format +msgid "Max brk space used %x\n" +msgstr "Ruang maksimal brk yang digunakan %x\n" + +#: util/mkisofs/mkisofs.c:1390 +#, c-format +msgid "%llu extents written (%llu MiB)\n" +msgstr "%llu ekstensi ditulis (%llu MiB)\n" + +#: util/mkisofs/multi.c:161 +msgid "Seek error on old image\n" +msgstr "Error pencarian dalam image lama\n" + +#: util/mkisofs/multi.c:179 util/mkisofs/multi.c:250 +#, c-format +msgid "**Bad RR version attribute" +msgstr "**Atribut versi RR buruk" + +#: util/mkisofs/multi.c:546 +#, c-format +msgid "Warning: Neither Rock Ridge (-R) nor TRANS.TBL (-T) name translations were found on previous session. ISO (8.3) file names have been used instead.\n" +msgstr "Peringatan: Bukan Rock Ridge (-R) ataupun TRANS.TBL (-T) nama terjemahan ditemukan dalam sesi sebelumnya. ISO (8.3) nama berkas yang telah digunakan.\n" + +#: util/mkisofs/multi.c:764 +#, c-format +msgid "Read error on old image %s\n" +msgstr "Error membaca dalam image lama %s\n" + +#: util/mkisofs/multi.c:1084 +msgid "Special parameters for cdwrite not specified with -C\n" +msgstr "Parameter spesial untuk cdwrite tidak dispesifikasikan dengan -C\n" + +#: util/mkisofs/multi.c:1091 +msgid "Malformed cdwrite parameters\n" +msgstr "Parameter cdwrite salah format\n" + +#: util/mkisofs/rock.c:309 +#, c-format +msgid "symbolic link ``%s'' to long for one SL System Use Field, splitting" +msgstr "link simbolik ``%s'' terlalu panjang untuk satu SL Sistem Menggunakan Field, dipisahkan" + +#: util/mkisofs/rock.c:517 +#, c-format +msgid "Unable to insert transparent compressed file - name conflict\n" +msgstr "Tidak dapat memasukan berkas terkompress secara transparan - konflik nama\n" + +#: util/mkisofs/rock.c:591 +msgid "Extension record too long\n" +msgstr "Rekaman ekstensi terlalu panjang\n" + +#: util/mkisofs/tree.c:226 util/mkisofs/write.c:565 util/mkisofs/write.c:1037 +msgid "Fatal goof\n" +msgstr "Fatal goof\n" + +#: util/mkisofs/tree.c:284 +#, c-format +msgid "Unable to generate unique name for file %s\n" +msgstr "Tidak dapat menghasilkan nama unik untuk berkas %s\n" + +#: util/mkisofs/tree.c:295 util/mkisofs/tree.c:317 +#, c-format +msgid "Using %s for %s%s%s (%s)\n" +msgstr "Menggunakan %s untuk %s%s%s (%s)\n" + +#: util/mkisofs/tree.c:441 +#, c-format +msgid "Fatal error - RR overflow for file %s\n" +msgstr "Fatal error -RR overflow untuk berkas %s\n" + +#: util/mkisofs/tree.c:449 +#, c-format +msgid "Unable to sort directory %s\n" +msgstr "Tidak dapat mengurutkan direktori %s\n" + +#: util/mkisofs/tree.c:480 +#, c-format +msgid "Translation table size mismatch %d %d\n" +msgstr "Besar tabel terjemahan tidak cocok %d %d\n" + +#: util/mkisofs/tree.c:746 +msgid "Unable to locate directory parent\n" +msgstr "Tidak dapat menempatkan direktori atasnya\n" + +#: util/mkisofs/tree.c:796 +#, c-format +msgid "Scanning %s\n" +msgstr "Memindai %s\n" + +#: util/mkisofs/tree.c:811 +#, c-format +msgid "Unable to open directory %s\n" +msgstr "Tidak dapat membuka direktori %s\n" + +#: util/mkisofs/tree.c:856 +#, c-format +msgid "Ignoring file %s\n" +msgstr "Mengabaikan berkas %s\n" + +#: util/mkisofs/tree.c:863 +msgid "Overflow of stat buffer\n" +msgstr "Overflow dari penyangga statistik\n" + +#: util/mkisofs/tree.c:876 +#, c-format +msgid "Excluded by match: %s\n" +msgstr "Diabaikan oleh kecocokan: %s\n" + +#: util/mkisofs/tree.c:891 +#, c-format +msgid "Excluded: %s\n" +msgstr "Diabaikan: %s\n" + +#: util/mkisofs/tree.c:961 +#, c-format +msgid "Non-existant or inaccessible: %s\n" +msgstr "Tidak ada atau tidak dapat diakses: %s\n" + +#: util/mkisofs/tree.c:997 util/mkisofs/tree.c:1103 +#, c-format +msgid "Unable to stat file %s - ignoring and continuing.\n" +msgstr "Tidak dapat memperoleh statistik berkas %s - mengabaikan dan melanjutkan.\n" + +#: util/mkisofs/tree.c:1003 +#, c-format +msgid "Symlink %s ignored - continuing.\n" +msgstr "Link simbolik %s diabaikan - melanjutkan.\n" + +#: util/mkisofs/tree.c:1028 +#, c-format +msgid "Already cached directory seen (%s)\n" +msgstr "Direktori yang telah dicache terlihat (%s)\n" + +#: util/mkisofs/tree.c:1070 +#, c-format +msgid "File %s is not readable (%s) - ignoring\n" +msgstr "Berkas %s tidak dapat dibaca (%s) - mengabaikan\n" + +#: util/mkisofs/tree.c:1083 +#, c-format +msgid "Directory loop - fatal goof (%s %lx %lu).\n" +msgstr "Loop direktori - fatal goof (%s %lx %lu).\n" + +#: util/mkisofs/tree.c:1093 +#, c-format +msgid "Unknown file type %s - ignoring and continuing.\n" +msgstr "Tipe berkas %s tidak diketahui - mengabaikan dan melanjutkan.\n" + +#: util/mkisofs/tree.c:1179 +#, c-format +msgid "Hidden from ISO9660 tree: %s\n" +msgstr "Tersembunyi dari pohon ISO9660: %s\n" + +#: util/mkisofs/tree.c:1191 +#, c-format +msgid "Hidden from Joliet tree: %s\n" +msgstr "Tersembunyi dari pohon joliet: %s\n" + +#: util/mkisofs/tree.c:1600 +#, c-format +msgid "Directories too deep %s\n" +msgstr "Direktori terlalu dalam %s\n" + +#: util/mkisofs/tree.c:1632 +msgid "Unable to delete non-empty directory\n" +msgstr "Tidak dapat menghapus direktori yang tidak kosong\n" + +#: util/mkisofs/tree.c:1655 +msgid "Unable to locate child directory in parent list\n" +msgstr "Tidak dapat menemukan direktori anak dalam daftar orang-tua\n" + +#: util/mkisofs/tree.c:1772 +#, c-format +msgid "call to search_tree_file with an absolute path, stripping\n" +msgstr "memanggil ke search_tree_file dengan sebuah jalur absolut, dipotong\n" + +#: util/mkisofs/tree.c:1773 +#, c-format +msgid "initial path separator. Hope this was intended...\n" +msgstr "jalur pemisah awal. Semoga ini yang diinginkan...\n" + +#: util/mkisofs/write.c:158 +#, c-format +msgid "Cannot open '%s'" +msgstr "Tidak dapat membuka '%s'" + +#: util/mkisofs/write.c:166 +#, c-format +msgid "cannot fwrite %llu*%llu\n" +msgstr "tidak dapat fwrite %llu*%llu\n" + +#: util/mkisofs/write.c:248 +#, c-format +msgid "cannot open %s\n" +msgstr "tidak dapat membuka %s\n" + +#: util/mkisofs/write.c:257 +#, c-format +msgid "cannot read %llu bytes from %s" +msgstr "tidak dapat membaca %llu bytes dari %s" + +#: util/mkisofs/write.c:275 +#, c-format +msgid "%6.2f%% done, estimate finish %s" +msgstr "%6.2f%% selesai, kira kira selesai %s" + +#: util/mkisofs/write.c:542 +#, c-format +msgid "Cache hit for %s%s%s\n" +msgstr "Cache kena untuk %s%s%s\n" + +#: util/mkisofs/write.c:896 +#, c-format +msgid "Unexpected directory length %d %d %s\n" +msgstr "Panjang direktori tidak terduga %d %d %s\n" + +#: util/mkisofs/write.c:908 +#, c-format +msgid "Continuation entry record length mismatch (%d %d).\n" +msgstr "Panjang masukan rekaman lanjutan tidak cocok (%d %d).\n" + +#: util/mkisofs/write.c:1072 +#, c-format +msgid "Path table lengths do not match %d %d\n" +msgstr "Panjang jalur tabel tidak cocok %d %d\n" + +#: util/mkisofs/write.c:1118 util/mkisofs/write.c:1128 +#, c-format +msgid "Total extents scheduled to be written = %llu\n" +msgstr "Total ekstensi telah terjadwal untuk ditulis = %llu\n" + +#: util/mkisofs/write.c:1145 +#, c-format +msgid "Total extents actually written = %llu\n" +msgstr "Total ekstensi yang sebenarnya tertulis = %llu\n" + +#: util/mkisofs/write.c:1154 +#, c-format +msgid "Number of extents written different than what was predicted. Please fix.\n" +msgstr "Jumlah dari ekstensi yang ditulis berbeda dari apa yang direncanakan. Mohon betulkan.\n" + +#: util/mkisofs/write.c:1155 +#, c-format +msgid "Predicted = %d, written = %llu\n" +msgstr "Diperkirakan = %d, tertulis = %llu\n" + +#: util/mkisofs/write.c:1158 +#, c-format +msgid "Total translation table size: %d\n" +msgstr "Total besar tabel terjemahan: %d\n" + +#: util/mkisofs/write.c:1159 +#, c-format +msgid "Total rockridge attributes bytes: %d\n" +msgstr "Total atribut rockridge bytes: %d\n" + +#: util/mkisofs/write.c:1160 +#, c-format +msgid "Total directory bytes: %d\n" +msgstr "Total bytes direktori: %d\n" + +#: util/mkisofs/write.c:1161 +#, c-format +msgid "Path table size(bytes): %d\n" +msgstr "Ukuran tabel jalur(bytes): %d\n" + +#: util/grub.d/10_kfreebsd.in:40 +msgid "%s, with kFreeBSD %s" +msgstr "%s, dengan kFreeBSD %s" + +#: util/grub.d/10_linux.in:57 +msgid "%s, with Linux %s (recovery mode)" +msgstr "%s, dengan Linux %s (mode penyembuhan)" + +#: util/grub.d/10_linux.in:59 +msgid "%s, with Linux %s" +msgstr "%s, dengan Linux %s" + +#~ msgid "the size of memory disk is 0x%x" +#~ msgstr "besar dari disk memori 0x%0x" + +#~ msgid "the size of config file is 0x%x" +#~ msgstr "besar dari berkas konfig adalah 0x%x" + +#~ msgid "the total module size is 0x%x" +#~ msgstr "total besar modul adalah 0x%x" + +#~ msgid "the core size is 0x%x" +#~ msgstr "besar core adalah 0x%x" + +#~ msgid "the first sector is <%llu,%u,%u>" +#~ msgstr "sektor pertama adalah <%llu,%u,%u>" + +#~ msgid "saving <%llu,%u,%u> with the segment 0x%x" +#~ msgstr "menyimpan <%llu,%u,%u> dengan bagian 0x%x" + +#~ msgid "setting the root device to `%s'" +#~ msgstr "konfigurasi perangkat root ke `%s'" + +#~ msgid "dos partition is %d, bsd partition is %d" +#~ msgstr "partisi dos adalah %d, partisi bsd adalah %d" + +#~ msgid "the core image will be embedded at sector 0x%llx" +#~ msgstr "core image akan di ditempatkan di sektor 0x%llx" + +#~ msgid "succeeded in opening the core image but the size is different (%d != %d)" +#~ msgstr "sukses dalam membuka image core tetapi ukurannya berbeda (%d != %d)" + +#~ msgid "succeeded in opening the core image but cannot read %d bytes" +#~ msgstr "sukses dalam membuka image core tetapi tidak dapat membaca %d bytes" + +#~ msgid "succeeded in opening the core image but the data is different" +#~ msgstr "sukses dalam membuka image core tetapi data berbeda" + +#~ msgid "couldn't open the core image" +#~ msgstr "tidak dapat membuka image core" + +#~ msgid "error message = %s" +#~ msgstr "pesan error = %s" + +#~ msgid "opening the core image `%s'" +#~ msgstr "membuka image core `%s'" + +#~ msgid "guessing the root device failed, because of `%s'" +#~ msgstr "pendeteksian perangkat root gagal, karena `%s'" From 62b47f220af0801acafbf328b04c51ed6e3814ae Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Tue, 24 Nov 2009 08:20:48 +0100 Subject: [PATCH 36/49] 2009-11-24 Felix Zielcke * util/getroot.c (grub_util_is_dmraid): New function. (grub_util_get_dev_abstraction): Treat dmraid and multipath devices as normal ones, not as LVM. --- ChangeLog | 6 ++++++ util/getroot.c | 30 +++++++++++++++++++++++++++++- 2 files changed, 35 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index decef53b0..b7887190d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +2009-11-24 Felix Zielcke + + * util/getroot.c (grub_util_is_dmraid): New function. + (grub_util_get_dev_abstraction): Treat dmraid and multipath + devices as normal ones, not as LVM. + 2009-11-23 Robert Millan * po/id.po: New file. diff --git a/util/getroot.c b/util/getroot.c index 2915ab4f2..da78bc375 100644 --- a/util/getroot.c +++ b/util/getroot.c @@ -460,13 +460,41 @@ grub_guess_root_device (const char *dir) return os_dev; } +int +grub_util_is_dmraid (const char *os_dev) +{ + if (! strncmp (os_dev, "/dev/mapper/nvidia_", 19)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/isw_", 16)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/hpt37x_", 19)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/hpt45x_", 19)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/via_", 16)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/lsi_", 16)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/pdc_", 16)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/jmicron_", 20)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/asr_", 16)) + return 1; + else if (! strncmp (os_dev, "/dev/mapper/sil_", 16)) + return 1; + + return 0; +} int grub_util_get_dev_abstraction (const char *os_dev UNUSED) { #ifdef __linux__ /* Check for LVM. */ - if (!strncmp (os_dev, "/dev/mapper/", 12)) + if (!strncmp (os_dev, "/dev/mapper/", 12) + && ! grub_util_is_dmraid (os_dev) + && strncmp (os_dev, "/dev/mapper/mpath" != 0) return GRUB_DEV_ABSTRACTION_LVM; /* Check for RAID. */ From 4465287d1bd119ca0c0647a82882ac0053cd62e3 Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Tue, 24 Nov 2009 09:55:28 +0100 Subject: [PATCH 37/49] 2009-11-24 Felix Zielcke * util/getroot.c (grub_util_get_dev_abstraction): Properly use strncmp(). --- ChangeLog | 5 +++++ util/getroot.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index b7887190d..b80578ae3 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-24 Felix Zielcke + + * util/getroot.c (grub_util_get_dev_abstraction): Properly use + strncmp(). + 2009-11-24 Felix Zielcke * util/getroot.c (grub_util_is_dmraid): New function. diff --git a/util/getroot.c b/util/getroot.c index da78bc375..a3c03d0b0 100644 --- a/util/getroot.c +++ b/util/getroot.c @@ -494,7 +494,7 @@ grub_util_get_dev_abstraction (const char *os_dev UNUSED) /* Check for LVM. */ if (!strncmp (os_dev, "/dev/mapper/", 12) && ! grub_util_is_dmraid (os_dev) - && strncmp (os_dev, "/dev/mapper/mpath" != 0) + && strncmp (os_dev, "/dev/mapper/mpath", 17) != 0) return GRUB_DEV_ABSTRACTION_LVM; /* Check for RAID. */ From 285cd7ddd563d6f9104a08a038d20a6e93ac6c19 Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Tue, 24 Nov 2009 10:45:26 +0000 Subject: [PATCH 38/49] Move ChangeLog entries affecting po/ directory to po/ChangeLog --- ChangeLog | 17 ----------------- po/ChangeLog | 38 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 38 insertions(+), 17 deletions(-) create mode 100644 po/ChangeLog diff --git a/ChangeLog b/ChangeLog index b80578ae3..8bf408f24 100644 --- a/ChangeLog +++ b/ChangeLog @@ -9,11 +9,6 @@ (grub_util_get_dev_abstraction): Treat dmraid and multipath devices as normal ones, not as LVM. -2009-11-23 Robert Millan - - * po/id.po: New file. - * LINGUAS: Add `id'. - 2009-11-23 Carles Pina i Estany * conf/common.rmk: Add grub-gettext_lib target and updates @@ -28,8 +23,6 @@ * normal/menu_text.c: Include . * normal/menu_text.c (print_timeout): Gettexttize string. * normal/menu_text.c (print_message): Gettexttize string. - * po/POTFILES: Add `normal/menu_text.c'. - * po/ca.po: Add new translations. * util/grub.d/00_header.in: Define locale_dir and lang. insmod gettext module and defines locale_dir and lang in grub.cfg. * NEWS: Add gettext support. @@ -232,8 +225,6 @@ * Makefile.in (po/*.po): Redefine as ... ($(foreach lang, $(LINGUAS), po/$(lang).po)): ... this. - * po/POTFILES: Add `util/i386/pc/grub-setup.c'. - 2009-11-19 Robert Millan * conf/common.rmk (grub_mkisofs_SOURCES): Add `gnulib/progname.c'. @@ -252,8 +243,6 @@ * util/mkisofs/tree.c: Likewise. * util/mkisofs/write.c: Likewise. - * po/POTFILES: Update with new files. - 2009-11-18 Robert Millan * util/mkisofs/eltorito.c: Fix minor mistake in license text. @@ -281,8 +270,6 @@ 2009-11-18 Robert Millan - * po/POTFILES-shell: New file. List `util/grub.d/10_kfreebsd.in' - and `util/grub.d/10_linux.in'. * Makefile.in (po/$(PACKAGE).pot): Process `po/POTFILES-shell' for translatable Shell files. @@ -293,7 +280,6 @@ 2009-11-17 Robert Millan * INSTALL: Document Automake is needed for bootstrap. - * po/ca.po: Fix PO-Revision-Date and Language-Team fields. * util/grub.d/10_kfreebsd.in (bindir): New variable. Add gettext initialization. (kfreebsd_entry): Make menuentry output translatable. @@ -305,7 +291,6 @@ (po/*.po): Replace `msgmerge' with `$(MSGMERGE)'. (po/%.mo): Replace `msgfmt' with `$(MSGFMT)'. (LINGUAS): Auto-generate using `po/LINGUAS'. - * po/LINGUAS: New file. 2009-11-17 Robert Millan @@ -345,8 +330,6 @@ (install-local): Install MO files. (po/$(PACKAGE).pot, po/*.po, po/%.mo): New rules. * include/grub/i18n.h: New file. - * po/POTFILES: New file. - * po/ca.po: New file. * util/grub.d/10_linux.in (bindir): New variable. Add gettext initialization. (linux_entry): Make menuentry output translatable. diff --git a/po/ChangeLog b/po/ChangeLog new file mode 100644 index 000000000..d70f6353c --- /dev/null +++ b/po/ChangeLog @@ -0,0 +1,38 @@ +2009-11-23 Robert Millan + + * id.po: New file. + * LINGUAS: Add `id'. + +2009-11-23 Carles Pina i Estany + + * POTFILES: Add `normal/menu_text.c'. + * ca.po: Add new translations. + +2009-11-19 Robert Millan + + * POTFILES: Add `util/i386/pc/grub-setup.c'. + +2009-11-19 Robert Millan + + * POTFILES: Add `util/mkisofs/eltorito.c', `util/mkisofs/joliet.c', + `util/mkisofs/mkisofs.c', `util/mkisofs/multi.c', + `util/mkisofs/rock.c', `util/mkisofs/tree.c', and + `util/mkisofs/write.c'. + +2009-11-18 Robert Millan + + * POTFILES-shell: New file. List `util/grub.d/10_kfreebsd.in' + and `util/grub.d/10_linux.in'. + +2009-11-17 Robert Millan + + * ca.po: Fix PO-Revision-Date and Language-Team fields. + +2009-11-17 Robert Millan + + * LINGUAS: New file. + +2009-11-16 Robert Millan + + * POTFILES: New file. + * ca.po: New file. From 8725ccaad0eb7e049993869fe5a5bb23ecc5612c Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Tue, 24 Nov 2009 10:49:49 +0000 Subject: [PATCH 39/49] 2009-11-24 Robert Millan * zh_CN.po: New file. * LINGUAS: Add `zh_CN'. --- po/ChangeLog | 5 + po/LINGUAS | 1 + po/zh_CN.po | 832 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 838 insertions(+) create mode 100644 po/zh_CN.po diff --git a/po/ChangeLog b/po/ChangeLog index d70f6353c..6e537ccbf 100644 --- a/po/ChangeLog +++ b/po/ChangeLog @@ -1,3 +1,8 @@ +2009-11-24 Robert Millan + + * zh_CN.po: New file. + * LINGUAS: Add `zh_CN'. + 2009-11-23 Robert Millan * id.po: New file. diff --git a/po/LINGUAS b/po/LINGUAS index 2f4478d98..9bc3e53c1 100644 --- a/po/LINGUAS +++ b/po/LINGUAS @@ -1,2 +1,3 @@ ca id +zh_CN diff --git a/po/zh_CN.po b/po/zh_CN.po new file mode 100644 index 000000000..9816afbad --- /dev/null +++ b/po/zh_CN.po @@ -0,0 +1,832 @@ +# Simplified Chinese translations for grub package +# grub 软件包的简体中文翻译。 +# Copyright (C) 2009 Free Software Foundation, Inc. +# This file is distributed under the same license as the grub package. +# Aron Xu , 2009. +# +msgid "" +msgstr "" +"Project-Id-Version: grub 1.97+20091122\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2009-11-22 11:48+0100\n" +"PO-Revision-Date: 2009-11-23 18:36+0800\n" +"Last-Translator: Aron Xu \n" +"Language-Team: Chinese (simplified) \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" + +#: util/i386/pc/grub-mkimage.c:65 +msgid "the core image is too small" +msgstr "核心映像太小" + +#: util/i386/pc/grub-mkimage.c:77 +msgid "cannot compress the kernel image" +msgstr "无法压缩内核映像" + +#: util/i386/pc/grub-mkimage.c:138 +msgid "prefix is too long" +msgstr "前缀太长" + +#: util/i386/pc/grub-mkimage.c:206 +msgid "the core image is too big" +msgstr "核心映像太大" + +#: util/i386/pc/grub-mkimage.c:211 +#, c-format +msgid "diskboot.img size must be %u bytes" +msgstr "diskboot.img 的大小必须为 %u 字节" + +#: util/i386/pc/grub-mkimage.c:284 +#, c-format +msgid "Core image is too big (%p > %p)\n" +msgstr "核心映像太大(%p > %p)\n" + +#: util/i386/pc/grub-mkimage.c:321 util/i386/pc/grub-setup.c:587 +#, c-format +msgid "Try ``%s --help'' for more information.\n" +msgstr "请尝试运行 ``%s --help'' 以获得更多信息。\n" + +#: util/i386/pc/grub-mkimage.c:323 +#, c-format +msgid "" +"Usage: grub-mkimage [OPTION]... [MODULES]\n" +"\n" +"Make a bootable image of GRUB.\n" +"\n" +" -d, --directory=DIR use images and modules under DIR [default=%s]\n" +" -p, --prefix=DIR set grub_prefix directory [default=%s]\n" +" -m, --memdisk=FILE embed FILE as a memdisk image\n" +" -c, --config=FILE embed FILE as boot config\n" +" -o, --output=FILE output a generated image to FILE [default=stdout]\n" +" -h, --help display this message and exit\n" +" -V, --version print version information and exit\n" +" -v, --verbose print verbose messages\n" +"\n" +"Report bugs to <%s>.\n" +msgstr "" + +#: util/i386/pc/grub-mkimage.c:429 +#, c-format +msgid "cannot open %s" +msgstr "无法打开 %s" + +#: util/i386/pc/grub-setup.c:166 +msgid "The first sector of the core file is not sector-aligned" +msgstr "" + +#: util/i386/pc/grub-setup.c:180 +msgid "Non-sector-aligned data is found in the core file" +msgstr "" + +#: util/i386/pc/grub-setup.c:194 +msgid "The sectors of the core file are too fragmented" +msgstr "" + +#: util/i386/pc/grub-setup.c:205 +#, c-format +msgid "The size of `%s' is not %u" +msgstr "`%s' 的大小不是 %u" + +#: util/i386/pc/grub-setup.c:222 +#, c-format +msgid "The size of `%s' is too small" +msgstr "`%s' 太小" + +#: util/i386/pc/grub-setup.c:224 +#, c-format +msgid "The size of `%s' is too large" +msgstr "`%s' 太大" + +#: util/i386/pc/grub-setup.c:261 +#, c-format +msgid "Unable to identify a filesystem in %s; safety check can't be performed" +msgstr "" + +#: util/i386/pc/grub-setup.c:265 +#, c-format +msgid "%s appears to contain a %s filesystem which isn't known to reserve space for DOS-style boot. Installing GRUB there could result in FILESYSTEM DESTRUCTION if valuable data is overwritten by grub-setup (--skip-fs-probe disables this check, use at your own risk)" +msgstr "" + +#: util/i386/pc/grub-setup.c:314 +msgid "No DOS-style partitions found" +msgstr "未找到 DOS 类型分区" + +#: util/i386/pc/grub-setup.c:330 util/i386/pc/grub-setup.c:355 +msgid "Attempting to install GRUB to a partitionless disk. This is a BAD idea." +msgstr "正在试图安装 GRUB 到未分区的磁盘。 这是一个坏主意。" + +#: util/i386/pc/grub-setup.c:336 +msgid "Attempting to install GRUB to a partition instead of the MBR. This is a BAD idea." +msgstr "正在试图安装 GRUB 到分区而非 MBR。 这是一个坏主意。" + +#: util/i386/pc/grub-setup.c:365 +msgid "This msdos-style partition label has no post-MBR gap; embedding won't be possible!" +msgstr "" + +#: util/i386/pc/grub-setup.c:367 +msgid "This GPT partition label has no BIOS Boot Partition; embedding won't be possible!" +msgstr "" + +#: util/i386/pc/grub-setup.c:374 +msgid "Your core.img is unusually large. It won't fit in the embedding area." +msgstr "您的 core.img 超乎寻常的巨大。它不适用于嵌入式环境。" + +#: util/i386/pc/grub-setup.c:376 +msgid "Your embedding area is unusually small. core.img won't fit in it." +msgstr "您的嵌入式环境超乎寻常的小。core.img 无法适用于此处。" + +#: util/i386/pc/grub-setup.c:418 +msgid "Embedding is not possible, but this is required when the root device is on a RAID array or LVM volume." +msgstr "" + +#: util/i386/pc/grub-setup.c:421 +msgid "Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and its use is discouraged." +msgstr "" + +#: util/i386/pc/grub-setup.c:425 +msgid "If you really want blocklists, use --force." +msgstr "" + +#: util/i386/pc/grub-setup.c:439 +#, c-format +msgid "attempting to read the core image `%s' from GRUB" +msgstr "正在尝试从 GRUB 读取核心映像 `%s'" + +#: util/i386/pc/grub-setup.c:440 +#, c-format +msgid "attempting to read the core image `%s' from GRUB again" +msgstr "正在再次尝试从 GRUB 读取核心映像 `%s'" + +#: util/i386/pc/grub-setup.c:498 +#, c-format +msgid "Cannot read `%s' correctly" +msgstr "无法正确读取 `%s'" + +#: util/i386/pc/grub-setup.c:511 +msgid "No terminator in the core image" +msgstr "核心映像中没有终止符" + +#: util/i386/pc/grub-setup.c:522 +msgid "Failed to read the first sector of the core image" +msgstr "" + +#: util/i386/pc/grub-setup.c:528 +msgid "Failed to read the rest sectors of the core image" +msgstr "" + +#: util/i386/pc/grub-setup.c:547 +#, c-format +msgid "Cannot open `%s'" +msgstr "无法打开 `%s'" + +#: util/i386/pc/grub-setup.c:589 +#, c-format +msgid "" +"Usage: grub-setup [OPTION]... DEVICE\n" +"\n" +"Set up images to boot from DEVICE.\n" +"DEVICE must be a GRUB device (e.g. ``(hd0,1)'').\n" +"\n" +" -b, --boot-image=FILE use FILE as the boot image [default=%s]\n" +" -c, --core-image=FILE use FILE as the core image [default=%s]\n" +" -d, --directory=DIR use GRUB files in the directory DIR [default=%s]\n" +" -m, --device-map=FILE use FILE as the device map [default=%s]\n" +" -r, --root-device=DEV use DEV as the root device [default=guessed]\n" +" -f, --force install even if problems are detected\n" +" -s, --skip-fs-probe do not probe for filesystems in DEVICE\n" +" -h, --help display this message and exit\n" +" -V, --version print version information and exit\n" +" -v, --verbose print verbose messages\n" +"\n" +"Report bugs to <%s>.\n" +msgstr "" + +#: util/i386/pc/grub-setup.c:719 +#, c-format +msgid "No device is specified.\n" +msgstr "没有指定设备。\n" + +#: util/i386/pc/grub-setup.c:725 +#, c-format +msgid "Unknown extra argument `%s'.\n" +msgstr "未知的额外参数 `%s'。\n" + +#: util/i386/pc/grub-setup.c:742 +#, c-format +msgid "Invalid device `%s'.\n" +msgstr "无效的设备 `%s'。\n" + +#: util/i386/pc/grub-setup.c:755 +#, c-format +msgid "Invalid root device `%s'" +msgstr "无效的根设备 `%s'" + +#: util/i386/pc/grub-setup.c:768 +msgid "Cannot guess the root device. Specify the option ``--root-device''." +msgstr "无法猜测根设备。请使用 ``--root-device'' 选项指定。" + +#: util/mkisofs/eltorito.c:96 +#, c-format +msgid "A boot catalog exists and appears corrupted.\n" +msgstr "" + +#: util/mkisofs/eltorito.c:97 +#, c-format +msgid "Please check the following file: %s.\n" +msgstr "请检查以下文件:%s。\n" + +#: util/mkisofs/eltorito.c:98 +#, c-format +msgid "This file must be removed before a bootable CD can be done.\n" +msgstr "" + +#: util/mkisofs/eltorito.c:110 +#, c-format +msgid "Error creating boot catalog (%s)" +msgstr "" + +#: util/mkisofs/eltorito.c:114 +#, c-format +msgid "Error writing to boot catalog (%s)" +msgstr "" + +#: util/mkisofs/eltorito.c:144 +#, c-format +msgid "Boot catalog cannot be found!\n" +msgstr "" + +#: util/mkisofs/eltorito.c:158 +#, c-format +msgid "Boot image cannot be found!\n" +msgstr "无法找到引导映像!\n" + +#: util/mkisofs/eltorito.c:221 +#, c-format +msgid "" +"\n" +"Size of boot image is %d sectors" +msgstr "" +"\n" +"引导映像的大小为 %d 个扇区" + +#: util/mkisofs/eltorito.c:227 +#, c-format +msgid "No emulation\n" +msgstr "无模拟\n" + +#: util/mkisofs/eltorito.c:235 +#, c-format +msgid "Emulating a 1.44 meg floppy\n" +msgstr "模拟 1.44MiB 软盘\n" + +#: util/mkisofs/eltorito.c:240 +#, c-format +msgid "Emulating a 2.88 meg floppy\n" +msgstr "模拟 2.88MiB 软盘\n" + +#: util/mkisofs/eltorito.c:245 +#, c-format +msgid "Emulating a 1.2 meg floppy\n" +msgstr "模拟 1.2MiB 软盘\n" + +#: util/mkisofs/eltorito.c:249 +#, c-format +msgid "" +"\n" +"Error - boot image is not the an allowable size.\n" +msgstr "" +"\n" +"错误 - 引导映像大小不允许。\n" + +#: util/mkisofs/eltorito.c:269 +msgid "Error opening boot catalog for update" +msgstr "" + +#: util/mkisofs/eltorito.c:275 util/mkisofs/eltorito.c:277 +msgid "Error writing to boot catalog" +msgstr "" + +#: util/mkisofs/eltorito.c:291 +#, c-format +msgid "Error opening boot image file '%s' for update" +msgstr "" + +#: util/mkisofs/eltorito.c:299 +#, c-format +msgid "Odd alignment at non-end-of-file in boot image '%s'" +msgstr "" + +#: util/mkisofs/eltorito.c:311 +#, c-format +msgid "Boot image file '%s' changed unexpectedly" +msgstr "引导映像文件 '%s' 意外改变" + +#: util/mkisofs/eltorito.c:323 +#, c-format +msgid "Error writing to boot image (%s)" +msgstr "写入到引导映像出错(%s)" + +#: util/mkisofs/joliet.c:359 util/mkisofs/write.c:981 +#, c-format +msgid "Unable to generate sane path tables - too many directories (%d)\n" +msgstr "" + +#: util/mkisofs/joliet.c:398 util/mkisofs/write.c:1017 +#, c-format +msgid "Entry %d not in path tables\n" +msgstr "" + +#: util/mkisofs/joliet.c:412 +#, c-format +msgid "Fatal goof - directory has amnesia\n" +msgstr "" + +#: util/mkisofs/joliet.c:478 +#, c-format +msgid "Joliet path table lengths do not match %d %d\n" +msgstr "" + +#: util/mkisofs/joliet.c:530 +#, c-format +msgid "Unable to locate relocated directory\n" +msgstr "" + +#: util/mkisofs/joliet.c:605 +#, c-format +msgid "Fatal goof - unable to find directory location\n" +msgstr "" + +#: util/mkisofs/joliet.c:654 +#, c-format +msgid "Unexpected joliet directory length %d %d %s\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:373 +#, c-format +msgid "Using \"%s\"\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:401 +#, c-format +msgid "%s:%d: name required\n" +msgstr "%s:%d:需要名称\n" + +#: util/mkisofs/mkisofs.c:411 +#, c-format +msgid "%s:%d: equals sign required\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:445 +#, c-format +msgid "%s:%d: field name \"%s\" unknown\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:474 +#, c-format +msgid "Usage: %s [options] file...\n" +msgstr "用法:%s [选项] 文件...\n" + +#: util/mkisofs/mkisofs.c:476 +#, c-format +msgid "Options:\n" +msgstr "选项:\n" + +#: util/mkisofs/mkisofs.c:706 +#, c-format +msgid "-i option no longer supported.\n" +msgstr "-i 选项已不再被支持。\n" + +#: util/mkisofs/mkisofs.c:720 +#, c-format +msgid "Required boot image pathname missing\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:729 +#, c-format +msgid "Required boot catalog pathname missing\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:737 +#, c-format +msgid "Ignoring -no-emul-boot (no-emulation is the default behaviour)\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:746 +#, c-format +msgid "Abstract filename string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:754 +#, c-format +msgid "Application-id string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:762 +#, c-format +msgid "Bibliographic filename string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:770 +#, c-format +msgid "Copyright filename string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:805 +#, c-format +msgid "Preparer string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:816 +#, c-format +msgid "Publisher string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:837 +#, c-format +msgid "System ID string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:848 +#, c-format +msgid "Volume ID string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:856 +#, c-format +msgid "Volume set ID string too long\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:867 +#, c-format +msgid "Volume set sequence number too big\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:909 util/mkisofs/mkisofs.c:919 +#: util/mkisofs/mkisofs.c:929 util/mkisofs/mkisofs.c:939 +#, c-format +msgid "date string must be 16 characters.\n" +msgstr "日期字符串长度必须为 16。\n" + +#: util/mkisofs/mkisofs.c:958 +msgid "Warning: getrlimit" +msgstr "警告:getrlimit" + +#: util/mkisofs/mkisofs.c:962 +msgid "Warning: setrlimit" +msgstr "警告:setrlimit" + +#: util/mkisofs/mkisofs.c:978 +#, c-format +msgid "Multisession usage bug: Must specify -C if -M is used.\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:984 +#, c-format +msgid "Warning: -C specified without -M: old session data will not be merged.\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:1023 +#, c-format +msgid "can't open logfile: %s" +msgstr "无法打开日志文件:%s" + +#: util/mkisofs/mkisofs.c:1027 +#, c-format +msgid "re-directing all messages to %s\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:1032 +#, c-format +msgid "can't open logfile: %s\n" +msgstr "无法打开日志文件:%s\n" + +#: util/mkisofs/mkisofs.c:1073 +#, c-format +msgid "Unable to open previous session image %s\n" +msgstr "无法打开上一会话使用的映像 %s\n" + +#: util/mkisofs/mkisofs.c:1184 +#, c-format +msgid "Invalid node - %s\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:1246 +msgid "Joliet tree sort failed.\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:1261 +msgid "Unable to open /dev/null\n" +msgstr "无法打开 /dev/null\n" + +#: util/mkisofs/mkisofs.c:1265 +msgid "Unable to open disc image file\n" +msgstr "无法打开磁盘映像文件\n" + +#: util/mkisofs/mkisofs.c:1387 +#, c-format +msgid "Max brk space used %x\n" +msgstr "" + +#: util/mkisofs/mkisofs.c:1390 +#, c-format +msgid "%llu extents written (%llu MiB)\n" +msgstr "" + +#: util/mkisofs/multi.c:161 +msgid "Seek error on old image\n" +msgstr "" + +#: util/mkisofs/multi.c:179 util/mkisofs/multi.c:250 +#, c-format +msgid "**Bad RR version attribute" +msgstr "" + +#: util/mkisofs/multi.c:546 +#, c-format +msgid "Warning: Neither Rock Ridge (-R) nor TRANS.TBL (-T) name translations were found on previous session. ISO (8.3) file names have been used instead.\n" +msgstr "" + +#: util/mkisofs/multi.c:764 +#, c-format +msgid "Read error on old image %s\n" +msgstr "" + +#: util/mkisofs/multi.c:1084 +msgid "Special parameters for cdwrite not specified with -C\n" +msgstr "" + +#: util/mkisofs/multi.c:1091 +msgid "Malformed cdwrite parameters\n" +msgstr "" + +#: util/mkisofs/rock.c:309 +#, c-format +msgid "symbolic link ``%s'' to long for one SL System Use Field, splitting" +msgstr "" + +#: util/mkisofs/rock.c:517 +#, c-format +msgid "Unable to insert transparent compressed file - name conflict\n" +msgstr "" + +#: util/mkisofs/rock.c:591 +msgid "Extension record too long\n" +msgstr "" + +#: util/mkisofs/tree.c:226 util/mkisofs/write.c:565 util/mkisofs/write.c:1037 +msgid "Fatal goof\n" +msgstr "" + +#: util/mkisofs/tree.c:284 +#, c-format +msgid "Unable to generate unique name for file %s\n" +msgstr "" + +#: util/mkisofs/tree.c:295 util/mkisofs/tree.c:317 +#, c-format +msgid "Using %s for %s%s%s (%s)\n" +msgstr "" + +#: util/mkisofs/tree.c:441 +#, c-format +msgid "Fatal error - RR overflow for file %s\n" +msgstr "" + +#: util/mkisofs/tree.c:449 +#, c-format +msgid "Unable to sort directory %s\n" +msgstr "" + +#: util/mkisofs/tree.c:480 +#, c-format +msgid "Translation table size mismatch %d %d\n" +msgstr "" + +#: util/mkisofs/tree.c:746 +msgid "Unable to locate directory parent\n" +msgstr "" + +#: util/mkisofs/tree.c:796 +#, c-format +msgid "Scanning %s\n" +msgstr "正在扫描 %s\n" + +#: util/mkisofs/tree.c:811 +#, c-format +msgid "Unable to open directory %s\n" +msgstr "无法打开目录 %s\n" + +#: util/mkisofs/tree.c:856 +#, c-format +msgid "Ignoring file %s\n" +msgstr "忽略文件 %s\n" + +#: util/mkisofs/tree.c:863 +msgid "Overflow of stat buffer\n" +msgstr "" + +#: util/mkisofs/tree.c:876 +#, c-format +msgid "Excluded by match: %s\n" +msgstr "" + +#: util/mkisofs/tree.c:891 +#, c-format +msgid "Excluded: %s\n" +msgstr "已排除:%s\n" + +#: util/mkisofs/tree.c:961 +#, c-format +msgid "Non-existant or inaccessible: %s\n" +msgstr "不存在或不可访问:%s\n" + +#: util/mkisofs/tree.c:997 util/mkisofs/tree.c:1103 +#, c-format +msgid "Unable to stat file %s - ignoring and continuing.\n" +msgstr "" + +#: util/mkisofs/tree.c:1003 +#, c-format +msgid "Symlink %s ignored - continuing.\n" +msgstr "已忽略符号链接 %s - 继续。\n" + +#: util/mkisofs/tree.c:1028 +#, c-format +msgid "Already cached directory seen (%s)\n" +msgstr "发现已缓冲目录(%s)\n" + +#: util/mkisofs/tree.c:1070 +#, c-format +msgid "File %s is not readable (%s) - ignoring\n" +msgstr "文件 %s 无法读取(%s) - 忽略\n" + +#: util/mkisofs/tree.c:1083 +#, c-format +msgid "Directory loop - fatal goof (%s %lx %lu).\n" +msgstr "" + +#: util/mkisofs/tree.c:1093 +#, c-format +msgid "Unknown file type %s - ignoring and continuing.\n" +msgstr "未知文件类型 %s - 忽略并继续。\n" + +#: util/mkisofs/tree.c:1179 +#, c-format +msgid "Hidden from ISO9660 tree: %s\n" +msgstr "从 ISO9660 树隐藏:%s\n" + +#: util/mkisofs/tree.c:1191 +#, c-format +msgid "Hidden from Joliet tree: %s\n" +msgstr "从 Joliet 树隐藏:%s\n" + +#: util/mkisofs/tree.c:1600 +#, c-format +msgid "Directories too deep %s\n" +msgstr "目录层次太深 %s\n" + +#: util/mkisofs/tree.c:1632 +msgid "Unable to delete non-empty directory\n" +msgstr "无法删除非空目录\n" + +#: util/mkisofs/tree.c:1655 +msgid "Unable to locate child directory in parent list\n" +msgstr "" + +#: util/mkisofs/tree.c:1772 +#, c-format +msgid "call to search_tree_file with an absolute path, stripping\n" +msgstr "" + +#: util/mkisofs/tree.c:1773 +#, c-format +msgid "initial path separator. Hope this was intended...\n" +msgstr "" + +#: util/mkisofs/write.c:158 +#, c-format +msgid "Cannot open '%s'" +msgstr "无法打开 '%s'" + +#: util/mkisofs/write.c:166 +#, c-format +msgid "cannot fwrite %llu*%llu\n" +msgstr "" + +#: util/mkisofs/write.c:248 +#, c-format +msgid "cannot open %s\n" +msgstr "无法打开 %s\n" + +#: util/mkisofs/write.c:257 +#, c-format +msgid "cannot read %llu bytes from %s" +msgstr "无法从 %2$s 读取 %1$llu 字节" + +#: util/mkisofs/write.c:275 +#, c-format +msgid "%6.2f%% done, estimate finish %s" +msgstr "已完成 %6.2f%%,估计 %s 完成" + +#: util/mkisofs/write.c:542 +#, c-format +msgid "Cache hit for %s%s%s\n" +msgstr "" + +#: util/mkisofs/write.c:896 +#, c-format +msgid "Unexpected directory length %d %d %s\n" +msgstr "目录长度意外 %d %d %s\n" + +#: util/mkisofs/write.c:908 +#, c-format +msgid "Continuation entry record length mismatch (%d %d).\n" +msgstr "" + +#: util/mkisofs/write.c:1072 +#, c-format +msgid "Path table lengths do not match %d %d\n" +msgstr "" + +#: util/mkisofs/write.c:1118 util/mkisofs/write.c:1128 +#, c-format +msgid "Total extents scheduled to be written = %llu\n" +msgstr "" + +#: util/mkisofs/write.c:1145 +#, c-format +msgid "Total extents actually written = %llu\n" +msgstr "" + +#: util/mkisofs/write.c:1154 +#, c-format +msgid "Number of extents written different than what was predicted. Please fix.\n" +msgstr "" + +#: util/mkisofs/write.c:1155 +#, c-format +msgid "Predicted = %d, written = %llu\n" +msgstr "预计 = %d,已写入 = %llu\n" + +#: util/mkisofs/write.c:1158 +#, c-format +msgid "Total translation table size: %d\n" +msgstr "" + +#: util/mkisofs/write.c:1159 +#, c-format +msgid "Total rockridge attributes bytes: %d\n" +msgstr "" + +#: util/mkisofs/write.c:1160 +#, c-format +msgid "Total directory bytes: %d\n" +msgstr "" + +#: util/mkisofs/write.c:1161 +#, c-format +msgid "Path table size(bytes): %d\n" +msgstr "" + +#: util/grub.d/10_kfreebsd.in:40 +msgid "%s, with kFreeBSD %s" +msgstr "" + +#: util/grub.d/10_linux.in:57 +msgid "%s, with Linux %s (recovery mode)" +msgstr "" + +#: util/grub.d/10_linux.in:59 +msgid "%s, with Linux %s" +msgstr "" + +#~ msgid "the size of memory disk is 0x%x" +#~ msgstr "内存磁盘大小为 0x%x" + +#~ msgid "the size of config file is 0x%x" +#~ msgstr "配置文件大小为 0x%x" + +#~ msgid "the total module size is 0x%x" +#~ msgstr "模块总计大小为 0x%x" + +#~ msgid "the core size is 0x%x" +#~ msgstr "核心大小位 0x%x" + +#~ msgid "setting the root device to `%s'" +#~ msgstr "设置 `%s' 为根设备" + +#~ msgid "dos partition is %d, bsd partition is %d" +#~ msgstr "DOS 分区为 %d,BSD 分区为 %d" + +#~ msgid "the core image will be embedded at sector 0x%llx" +#~ msgstr "核心映像将被嵌入于 0x%llx 扇区" + +#~ msgid "error message = %s" +#~ msgstr "错误信息 = %s" + +#~ msgid "opening the core image `%s'" +#~ msgstr "正在打开核心映像 `%s'" + +#~ msgid "guessing the root device failed, because of `%s'" +#~ msgstr "猜测根设备失败,原因为 `%s'" From 11d9778b86494b4a44ca55c578d7e94c5fc4897f Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Tue, 24 Nov 2009 12:29:17 +0100 Subject: [PATCH 40/49] 2009-11-24 Felix Zielcke * Makefile.in: Don't include GRUB_CONTRIB makefiles with emu platform. --- ChangeLog | 5 +++++ Makefile.in | 3 +-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8bf408f24..186ce7184 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-24 Felix Zielcke + + * Makefile.in: Don't include GRUB_CONTRIB makefiles with emu + platform. + 2009-11-24 Felix Zielcke * util/getroot.c (grub_util_get_dev_abstraction): Properly use diff --git a/Makefile.in b/Makefile.in index adab7ec0a..6d367526c 100644 --- a/Makefile.in +++ b/Makefile.in @@ -156,10 +156,9 @@ ifeq ($(platform), emu) include $(srcdir)/conf/any-emu.mk else include $(srcdir)/conf/$(target_cpu)-$(platform).mk -endif - # For external modules. -include $(wildcard $(GRUB_CONTRIB)/*/conf/common.mk) +endif ### General targets. From fefa1b7deb5b8c6db59faf2b536a2de47a08bcf5 Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Tue, 24 Nov 2009 15:47:48 +0100 Subject: [PATCH 41/49] 2009-11-24 Felix Zielcke * conf/i386-coreboot.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'. --- ChangeLog | 4 ++++ conf/i386-coreboot.rmk | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 59e14a0c0..fc0b6b30d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-11-24 Felix Zielcke + + * conf/i386-coreboot.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'. + 2009-11-24 Felix Zielcke * util/grub-mkrelpath.c: New file. diff --git a/conf/i386-coreboot.rmk b/conf/i386-coreboot.rmk index 5ab392a4d..33a477573 100644 --- a/conf/i386-coreboot.rmk +++ b/conf/i386-coreboot.rmk @@ -53,7 +53,7 @@ boot_img_FORMAT = binary bin_UTILITIES += grub-mkimage grub_mkimage_SOURCES = util/i386/pc/grub-mkimage.c util/misc.c \ - util/resolve.c + util/resolve.c gnulib/progname.c grub_mkimage_CFLAGS = -DGRUB_KERNEL_MACHINE_LINK_ADDR=$(GRUB_KERNEL_MACHINE_LINK_ADDR) pkglib_IMAGES += kernel.img From 8e2532fd0fbab07c6a4d37dbccbd0eb74035b875 Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Tue, 24 Nov 2009 18:43:46 +0100 Subject: [PATCH 42/49] 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Convert a make `$(foreach)' function to a normal shell `for'. --- ChangeLog | 5 +++++ Makefile.in | 16 +++++++++------- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/ChangeLog b/ChangeLog index fc0b6b30d..a6b2ece07 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-24 Felix Zielcke + + * util/Makefile.in (install-local): Convert a make `$(foreach)' + function to a normal shell `for'. + 2009-11-24 Felix Zielcke * conf/i386-coreboot.rmk (grub_mkimage_SOURCES): Add `gnulib/progname.c'. diff --git a/Makefile.in b/Makefile.in index 6d367526c..67ae1a1b1 100644 --- a/Makefile.in +++ b/Makefile.in @@ -310,13 +310,15 @@ install-local: all dest="`echo $$file | sed 's,.*/,,'`"; \ $(INSTALL_DATA) $$dir$$file $(DESTDIR)$(libdir)/grub/$$dest; \ done - $(foreach lang, $(LINGUAS), \ - $(shell $(mkinstalldirs) $(DESTDIR)/$(datadir)/locale/$(lang)/LC_MESSAGES) \ - @list='po/$(lang).mo'; \ - for file in $$list; do \ - if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ - $(INSTALL_DATA) $$dir$$file $(DESTDIR)/$(datadir)/locale/$(lang)/LC_MESSAGES/$(PACKAGE).mo; \ - done) + @langs='$(LINGUAS)'; \ + for lang in $$langs; do \ + $(SHELL) $(mkinstalldirs) $(DESTDIR)/$(datadir)/locale/$(lang)/LC_MESSAGES \ + list='po/$(liang).mo'; \ + for file in $$list; do \ + if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ + $(INSTALL_DATA) $$dir$$file $(DESTDIR)/$(datadir)/locale/$(lang)/LC_MESSAGES/$(PACKAGE).mo; \ + done \ + done $(SHELL) $(mkinstalldirs) $(DESTDIR)$(infodir) @list='$(info_INFOS)'; \ for file in $$list; do \ From 26bec39d67da005f3c931b892681f5ffda717333 Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Tue, 24 Nov 2009 19:44:24 +0100 Subject: [PATCH 43/49] 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Fix the use of $lang shell variable. --- ChangeLog | 4 ++++ Makefile.in | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/ChangeLog b/ChangeLog index a6b2ece07..a56616d40 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2009-11-24 Felix Zielcke + + * util/Makefile.in (install-local): Fix the use of $lang shell variable. + 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Convert a make `$(foreach)' diff --git a/Makefile.in b/Makefile.in index 67ae1a1b1..47da10458 100644 --- a/Makefile.in +++ b/Makefile.in @@ -312,11 +312,11 @@ install-local: all done @langs='$(LINGUAS)'; \ for lang in $$langs; do \ - $(SHELL) $(mkinstalldirs) $(DESTDIR)/$(datadir)/locale/$(lang)/LC_MESSAGES \ - list='po/$(liang).mo'; \ + $(SHELL) $(mkinstalldirs) $(DESTDIR)/$(datadir)/locale/$$lang/LC_MESSAGES \ + list='po/$$lang.mo'; \ for file in $$list; do \ if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ - $(INSTALL_DATA) $$dir$$file $(DESTDIR)/$(datadir)/locale/$(lang)/LC_MESSAGES/$(PACKAGE).mo; \ + $(INSTALL_DATA) $$dir$$file $(DESTDIR)/$(datadir)/locale/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ done \ done $(SHELL) $(mkinstalldirs) $(DESTDIR)$(infodir) From a031e91cf80f6778fb9210b69d5db7e2c012f4a5 Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Tue, 24 Nov 2009 18:51:35 +0000 Subject: [PATCH 44/49] 2009-11-24 Robert Millan * autogen.sh: Add automake call. * config.guess: Remove. * config.sub: Likewise. * install-sh: Likewise. --- .bzrignore | 4 + ChangeLog | 7 + autogen.sh | 3 + config.guess | 1494 -------------------------------------------- config.sub | 1700 -------------------------------------------------- install-sh | 519 --------------- 6 files changed, 14 insertions(+), 3713 deletions(-) delete mode 100644 config.guess delete mode 100644 config.sub delete mode 100644 install-sh diff --git a/.bzrignore b/.bzrignore index 0cb0cb457..56e3516b5 100644 --- a/.bzrignore +++ b/.bzrignore @@ -7,10 +7,12 @@ autom4te.cache build_env.mk .bzrignore config.cache +config.guess config.h config.h.in config.log config.status +config.sub configure conf/*.mk conf/gcry.rmk @@ -45,11 +47,13 @@ grub_setup_init.h *.img include/grub/cpu include/grub/machine +install-sh lib/libgcrypt-grub *.lst Makefile *.mod mod-*.c +missing *.pf2 po/*.mo po/grub.pot diff --git a/ChangeLog b/ChangeLog index a56616d40..a78fc5b8a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2009-11-24 Robert Millan + + * autogen.sh: Add automake call. + * config.guess: Remove. + * config.sub: Likewise. + * install-sh: Likewise. + 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Fix the use of $lang shell variable. diff --git a/autogen.sh b/autogen.sh index 5cbdbb489..eb251f9f0 100755 --- a/autogen.sh +++ b/autogen.sh @@ -6,6 +6,9 @@ aclocal autoconf autoheader +# FIXME: automake doesn't like that there's no Makefile.am +automake -a -c -f || true + echo timestamp > stamp-h.in python util/import_gcry.py lib/libgcrypt/ . diff --git a/config.guess b/config.guess deleted file mode 100644 index e792aac60..000000000 --- a/config.guess +++ /dev/null @@ -1,1494 +0,0 @@ -#! /bin/sh -# Attempt to guess a canonical system name. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-09-18' - -# This file is free software; you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Originally written by Per Bothner. Please send patches (context -# diff format) to and include a ChangeLog -# entry. -# -# This script attempts to guess a canonical system name similar to -# config.sub. If it succeeds, it prints the system name on stdout, and -# exits with 0. Otherwise, it exits with 1. -# -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] - -Output the configuration name of the system \`$me' is run on. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.guess ($timestamp) - -Originally written by Per Bothner. -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" >&2 - exit 1 ;; - * ) - break ;; - esac -done - -if test $# != 0; then - echo "$me: too many arguments$help" >&2 - exit 1 -fi - -trap 'exit 1' 1 2 15 - -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a -# compiler to aid in system detection is discouraged as it requires -# temporary files to be created and, as you can see below, it is a -# headache to deal with in a portable fashion. - -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still -# use `HOST_CC' if defined, but it is deprecated. - -# Portable tmp directory creation inspired by the Autoconf team. - -set_cc_for_build=' -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ; -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ; -: ${TMPDIR=/tmp} ; - { tmp=`(umask 077 && mktemp -d "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } || - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } || - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } || - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ; -dummy=$tmp/dummy ; -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ; -case $CC_FOR_BUILD,$HOST_CC,$CC in - ,,) echo "int x;" > $dummy.c ; - for c in cc gcc c89 c99 ; do - if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then - CC_FOR_BUILD="$c"; break ; - fi ; - done ; - if test x"$CC_FOR_BUILD" = x ; then - CC_FOR_BUILD=no_compiler_found ; - fi - ;; - ,,*) CC_FOR_BUILD=$CC ;; - ,*,*) CC_FOR_BUILD=$HOST_CC ;; -esac ; set_cc_for_build= ;' - -# This is needed to find uname on a Pyramid OSx when run in the BSD universe. -# (ghazi@noc.rutgers.edu 1994-08-24) -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then - PATH=$PATH:/.attbin ; export PATH -fi - -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown -UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown - -# Note: order is significant - the case branches are not exclusive. - -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in - *:NetBSD:*:*) - # NetBSD (nbsd) targets should (where applicable) match one or - # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*, - # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently - # switched to ELF, *-*-netbsd* would select the old - # object file format. This provides both forward - # compatibility and a consistent mechanism for selecting the - # object file format. - # - # Note: NetBSD doesn't particularly care about the vendor - # portion of the name. We always set it to "unknown". - sysctl="sysctl -n hw.machine_arch" - UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \ - /usr/sbin/$sysctl 2>/dev/null || echo unknown)` - case "${UNAME_MACHINE_ARCH}" in - armeb) machine=armeb-unknown ;; - arm*) machine=arm-unknown ;; - sh3el) machine=shl-unknown ;; - sh3eb) machine=sh-unknown ;; - sh5el) machine=sh5le-unknown ;; - *) machine=${UNAME_MACHINE_ARCH}-unknown ;; - esac - # The Operating System including object format, if it has switched - # to ELF recently, or will in the future. - case "${UNAME_MACHINE_ARCH}" in - arm*|i386|m68k|ns32k|sh3*|sparc|vax) - eval $set_cc_for_build - if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ELF__ - then - # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout). - # Return netbsd for either. FIX? - os=netbsd - else - os=netbsdelf - fi - ;; - *) - os=netbsd - ;; - esac - # The OS release - # Debian GNU/NetBSD machines have a different userland, and - # thus, need a distinct triplet. However, they do not need - # kernel version information, so it can be replaced with a - # suitable tag, in the style of linux-gnu. - case "${UNAME_VERSION}" in - Debian*) - release='-gnu' - ;; - *) - release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'` - ;; - esac - # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM: - # contains redundant information, the shorter form: - # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. - echo "${machine}-${os}${release}" - exit ;; - *:OpenBSD:*:*) - UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` - echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} - exit ;; - *:ekkoBSD:*:*) - echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE} - exit ;; - *:SolidBSD:*:*) - echo ${UNAME_MACHINE}-unknown-solidbsd${UNAME_RELEASE} - exit ;; - macppc:MirBSD:*:*) - echo powerpc-unknown-mirbsd${UNAME_RELEASE} - exit ;; - *:MirBSD:*:*) - echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE} - exit ;; - alpha:OSF1:*:*) - case $UNAME_RELEASE in - *4.0) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'` - ;; - *5.*) - UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'` - ;; - esac - # According to Compaq, /usr/sbin/psrinfo has been available on - # OSF/1 and Tru64 systems produced since 1995. I hope that - # covers most systems running today. This code pipes the CPU - # types through head -n 1, so we only detect the type of CPU 0. - ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1` - case "$ALPHA_CPU_TYPE" in - "EV4 (21064)") - UNAME_MACHINE="alpha" ;; - "EV4.5 (21064)") - UNAME_MACHINE="alpha" ;; - "LCA4 (21066/21068)") - UNAME_MACHINE="alpha" ;; - "EV5 (21164)") - UNAME_MACHINE="alphaev5" ;; - "EV5.6 (21164A)") - UNAME_MACHINE="alphaev56" ;; - "EV5.6 (21164PC)") - UNAME_MACHINE="alphapca56" ;; - "EV5.7 (21164PC)") - UNAME_MACHINE="alphapca57" ;; - "EV6 (21264)") - UNAME_MACHINE="alphaev6" ;; - "EV6.7 (21264A)") - UNAME_MACHINE="alphaev67" ;; - "EV6.8CB (21264C)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8AL (21264B)") - UNAME_MACHINE="alphaev68" ;; - "EV6.8CX (21264D)") - UNAME_MACHINE="alphaev68" ;; - "EV6.9A (21264/EV69A)") - UNAME_MACHINE="alphaev69" ;; - "EV7 (21364)") - UNAME_MACHINE="alphaev7" ;; - "EV7.9 (21364A)") - UNAME_MACHINE="alphaev79" ;; - esac - # A Pn.n version is a patched version. - # A Vn.n version is a released version. - # A Tn.n version is a released field test version. - # A Xn.n version is an unreleased experimental baselevel. - # 1.2 uses "1.2" for uname -r. - echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - exit ;; - Alpha\ *:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # Should we change UNAME_MACHINE based on the output of uname instead - # of the specific Alpha model? - echo alpha-pc-interix - exit ;; - 21064:Windows_NT:50:3) - echo alpha-dec-winnt3.5 - exit ;; - Amiga*:UNIX_System_V:4.0:*) - echo m68k-unknown-sysv4 - exit ;; - *:[Aa]miga[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-amigaos - exit ;; - *:[Mm]orph[Oo][Ss]:*:*) - echo ${UNAME_MACHINE}-unknown-morphos - exit ;; - *:OS/390:*:*) - echo i370-ibm-openedition - exit ;; - *:z/VM:*:*) - echo s390-ibm-zvmoe - exit ;; - *:OS400:*:*) - echo powerpc-ibm-os400 - exit ;; - arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*) - echo arm-acorn-riscix${UNAME_RELEASE} - exit ;; - arm:riscos:*:*|arm:RISCOS:*:*) - echo arm-unknown-riscos - exit ;; - SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*) - echo hppa1.1-hitachi-hiuxmpp - exit ;; - Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*) - # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE. - if test "`(/bin/universe) 2>/dev/null`" = att ; then - echo pyramid-pyramid-sysv3 - else - echo pyramid-pyramid-bsd - fi - exit ;; - NILE*:*:*:dcosx) - echo pyramid-pyramid-svr4 - exit ;; - DRS?6000:unix:4.0:6*) - echo sparc-icl-nx6 - exit ;; - DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*) - case `/usr/bin/uname -p` in - sparc) echo sparc-icl-nx7; exit ;; - esac ;; - s390x:SunOS:*:*) - echo ${UNAME_MACHINE}-ibm-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4H:SunOS:5.*:*) - echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*) - echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - i86pc:SunOS:5.*:* | i86xen:SunOS:5.*:*) - eval $set_cc_for_build - SUN_ARCH="i386" - # If there is a compiler, see if it is configured for 64-bit objects. - # Note that the Sun cc does not turn __LP64__ into 1 like gcc does. - # This test works for both compilers. - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __amd64'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - SUN_ARCH="x86_64" - fi - fi - echo ${SUN_ARCH}-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:6*:*) - # According to config.sub, this is the proper way to canonicalize - # SunOS6. Hard to guess exactly what SunOS6 will be like, but - # it's likely to be more like Solaris than SunOS4. - echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - sun4*:SunOS:*:*) - case "`/usr/bin/arch -k`" in - Series*|S4*) - UNAME_RELEASE=`uname -v` - ;; - esac - # Japanese Language versions have a version number like `4.1.3-JL'. - echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'` - exit ;; - sun3*:SunOS:*:*) - echo m68k-sun-sunos${UNAME_RELEASE} - exit ;; - sun*:*:4.2BSD:*) - UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null` - test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3 - case "`/bin/arch`" in - sun3) - echo m68k-sun-sunos${UNAME_RELEASE} - ;; - sun4) - echo sparc-sun-sunos${UNAME_RELEASE} - ;; - esac - exit ;; - aushp:SunOS:*:*) - echo sparc-auspex-sunos${UNAME_RELEASE} - exit ;; - # The situation for MiNT is a little confusing. The machine name - # can be virtually everything (everything which is not - # "atarist" or "atariste" at least should have a processor - # > m68000). The system name ranges from "MiNT" over "FreeMiNT" - # to the lowercase version "mint" (or "freemint"). Finally - # the system name "TOS" denotes a system which is actually not - # MiNT. But MiNT is downward compatible to TOS, so this should - # be no problem. - atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*) - echo m68k-atari-mint${UNAME_RELEASE} - exit ;; - milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*) - echo m68k-milan-mint${UNAME_RELEASE} - exit ;; - hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*) - echo m68k-hades-mint${UNAME_RELEASE} - exit ;; - *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*) - echo m68k-unknown-mint${UNAME_RELEASE} - exit ;; - m68k:machten:*:*) - echo m68k-apple-machten${UNAME_RELEASE} - exit ;; - powerpc:machten:*:*) - echo powerpc-apple-machten${UNAME_RELEASE} - exit ;; - RISC*:Mach:*:*) - echo mips-dec-mach_bsd4.3 - exit ;; - RISC*:ULTRIX:*:*) - echo mips-dec-ultrix${UNAME_RELEASE} - exit ;; - VAX*:ULTRIX*:*:*) - echo vax-dec-ultrix${UNAME_RELEASE} - exit ;; - 2020:CLIX:*:* | 2430:CLIX:*:*) - echo clipper-intergraph-clix${UNAME_RELEASE} - exit ;; - mips:*:*:UMIPS | mips:*:*:RISCos) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c -#ifdef __cplusplus -#include /* for printf() prototype */ - int main (int argc, char *argv[]) { -#else - int main (argc, argv) int argc; char *argv[]; { -#endif - #if defined (host_mips) && defined (MIPSEB) - #if defined (SYSTYPE_SYSV) - printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_SVR4) - printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0); - #endif - #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD) - printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0); - #endif - #endif - exit (-1); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && - dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` && - SYSTEM_NAME=`$dummy $dummyarg` && - { echo "$SYSTEM_NAME"; exit; } - echo mips-mips-riscos${UNAME_RELEASE} - exit ;; - Motorola:PowerMAX_OS:*:*) - echo powerpc-motorola-powermax - exit ;; - Motorola:*:4.3:PL8-*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*) - echo powerpc-harris-powermax - exit ;; - Night_Hawk:Power_UNIX:*:*) - echo powerpc-harris-powerunix - exit ;; - m88k:CX/UX:7*:*) - echo m88k-harris-cxux7 - exit ;; - m88k:*:4*:R4*) - echo m88k-motorola-sysv4 - exit ;; - m88k:*:3*:R3*) - echo m88k-motorola-sysv3 - exit ;; - AViiON:dgux:*:*) - # DG/UX returns AViiON for all architectures - UNAME_PROCESSOR=`/usr/bin/uname -p` - if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ] - then - if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \ - [ ${TARGET_BINARY_INTERFACE}x = x ] - then - echo m88k-dg-dgux${UNAME_RELEASE} - else - echo m88k-dg-dguxbcs${UNAME_RELEASE} - fi - else - echo i586-dg-dgux${UNAME_RELEASE} - fi - exit ;; - M88*:DolphinOS:*:*) # DolphinOS (SVR3) - echo m88k-dolphin-sysv3 - exit ;; - M88*:*:R3*:*) - # Delta 88k system running SVR3 - echo m88k-motorola-sysv3 - exit ;; - XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3) - echo m88k-tektronix-sysv3 - exit ;; - Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD) - echo m68k-tektronix-bsd - exit ;; - *:IRIX*:*:*) - echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'` - exit ;; - ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX. - echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id - exit ;; # Note that: echo "'`uname -s`'" gives 'AIX ' - i*86:AIX:*:*) - echo i386-ibm-aix - exit ;; - ia64:AIX:*:*) - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${UNAME_MACHINE}-ibm-aix${IBM_REV} - exit ;; - *:AIX:2:3) - if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - - main() - { - if (!__power_pc()) - exit(1); - puts("powerpc-ibm-aix3.2.5"); - exit(0); - } -EOF - if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` - then - echo "$SYSTEM_NAME" - else - echo rs6000-ibm-aix3.2.5 - fi - elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then - echo rs6000-ibm-aix3.2.4 - else - echo rs6000-ibm-aix3.2 - fi - exit ;; - *:AIX:*:[456]) - IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'` - if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then - IBM_ARCH=rs6000 - else - IBM_ARCH=powerpc - fi - if [ -x /usr/bin/oslevel ] ; then - IBM_REV=`/usr/bin/oslevel` - else - IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE} - fi - echo ${IBM_ARCH}-ibm-aix${IBM_REV} - exit ;; - *:AIX:*:*) - echo rs6000-ibm-aix - exit ;; - ibmrt:4.4BSD:*|romp-ibm:BSD:*) - echo romp-ibm-bsd4.4 - exit ;; - ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and - echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to - exit ;; # report: romp-ibm BSD 4.3 - *:BOSX:*:*) - echo rs6000-bull-bosx - exit ;; - DPX/2?00:B.O.S.:*:*) - echo m68k-bull-sysv3 - exit ;; - 9000/[34]??:4.3bsd:1.*:*) - echo m68k-hp-bsd - exit ;; - hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*) - echo m68k-hp-bsd4.4 - exit ;; - 9000/[34678]??:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - case "${UNAME_MACHINE}" in - 9000/31? ) HP_ARCH=m68000 ;; - 9000/[34]?? ) HP_ARCH=m68k ;; - 9000/[678][0-9][0-9]) - if [ -x /usr/bin/getconf ]; then - sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null` - sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null` - case "${sc_cpu_version}" in - 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0 - 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1 - 532) # CPU_PA_RISC2_0 - case "${sc_kernel_bits}" in - 32) HP_ARCH="hppa2.0n" ;; - 64) HP_ARCH="hppa2.0w" ;; - '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20 - esac ;; - esac - fi - if [ "${HP_ARCH}" = "" ]; then - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - - #define _HPUX_SOURCE - #include - #include - - int main () - { - #if defined(_SC_KERNEL_BITS) - long bits = sysconf(_SC_KERNEL_BITS); - #endif - long cpu = sysconf (_SC_CPU_VERSION); - - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1"); break; - case CPU_PA_RISC2_0: - #if defined(_SC_KERNEL_BITS) - switch (bits) - { - case 64: puts ("hppa2.0w"); break; - case 32: puts ("hppa2.0n"); break; - default: puts ("hppa2.0"); break; - } break; - #else /* !defined(_SC_KERNEL_BITS) */ - puts ("hppa2.0"); break; - #endif - default: puts ("hppa1.0"); break; - } - exit (0); - } -EOF - (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy` - test -z "$HP_ARCH" && HP_ARCH=hppa - fi ;; - esac - if [ ${HP_ARCH} = "hppa2.0w" ] - then - eval $set_cc_for_build - - # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating - # 32-bit code. hppa64-hp-hpux* has the same kernel and a compiler - # generating 64-bit code. GNU and HP use different nomenclature: - # - # $ CC_FOR_BUILD=cc ./config.guess - # => hppa2.0w-hp-hpux11.23 - # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess - # => hppa64-hp-hpux11.23 - - if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | - grep -q __LP64__ - then - HP_ARCH="hppa2.0w" - else - HP_ARCH="hppa64" - fi - fi - echo ${HP_ARCH}-hp-hpux${HPUX_REV} - exit ;; - ia64:HP-UX:*:*) - HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'` - echo ia64-hp-hpux${HPUX_REV} - exit ;; - 3050*:HI-UX:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #include - int - main () - { - long cpu = sysconf (_SC_CPU_VERSION); - /* The order matters, because CPU_IS_HP_MC68K erroneously returns - true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct - results, however. */ - if (CPU_IS_PA_RISC (cpu)) - { - switch (cpu) - { - case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break; - case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break; - case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break; - default: puts ("hppa-hitachi-hiuxwe2"); break; - } - } - else if (CPU_IS_HP_MC68K (cpu)) - puts ("m68k-hitachi-hiuxwe2"); - else puts ("unknown-hitachi-hiuxwe2"); - exit (0); - } -EOF - $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - echo unknown-hitachi-hiuxwe2 - exit ;; - 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* ) - echo hppa1.1-hp-bsd - exit ;; - 9000/8??:4.3bsd:*:*) - echo hppa1.0-hp-bsd - exit ;; - *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*) - echo hppa1.0-hp-mpeix - exit ;; - hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* ) - echo hppa1.1-hp-osf - exit ;; - hp8??:OSF1:*:*) - echo hppa1.0-hp-osf - exit ;; - i*86:OSF1:*:*) - if [ -x /usr/sbin/sysversion ] ; then - echo ${UNAME_MACHINE}-unknown-osf1mk - else - echo ${UNAME_MACHINE}-unknown-osf1 - fi - exit ;; - parisc*:Lites*:*:*) - echo hppa1.1-hp-lites - exit ;; - C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*) - echo c1-convex-bsd - exit ;; - C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*) - echo c34-convex-bsd - exit ;; - C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*) - echo c38-convex-bsd - exit ;; - C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*) - echo c4-convex-bsd - exit ;; - CRAY*Y-MP:*:*:*) - echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*[A-Z]90:*:*:*) - echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \ - | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \ - -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \ - -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*TS:*:*:*) - echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*T3E:*:*:*) - echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - CRAY*SV1:*:*:*) - echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - *:UNICOS/mp:*:*) - echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/' - exit ;; - F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*) - FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'` - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'` - echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - 5000:UNIX_System_V:4.*:*) - FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'` - FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'` - echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}" - exit ;; - i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*) - echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE} - exit ;; - sparc*:BSD/OS:*:*) - echo sparc-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:BSD/OS:*:*) - echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE} - exit ;; - *:FreeBSD:*:*) - case ${UNAME_MACHINE} in - pc98) - echo i386-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - amd64) - echo x86_64-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - *) - echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` ;; - esac - exit ;; - i*:CYGWIN*:*) - echo ${UNAME_MACHINE}-pc-cygwin - exit ;; - *:MINGW*:*) - echo ${UNAME_MACHINE}-pc-mingw32 - exit ;; - i*:windows32*:*) - # uname -m includes "-pc" on this system. - echo ${UNAME_MACHINE}-mingw32 - exit ;; - i*:PW*:*) - echo ${UNAME_MACHINE}-pc-pw32 - exit ;; - *:Interix*:[3456]*) - case ${UNAME_MACHINE} in - x86) - echo i586-pc-interix${UNAME_RELEASE} - exit ;; - EM64T | authenticamd | genuineintel) - echo x86_64-unknown-interix${UNAME_RELEASE} - exit ;; - IA64) - echo ia64-unknown-interix${UNAME_RELEASE} - exit ;; - esac ;; - [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*) - echo i${UNAME_MACHINE}-pc-mks - exit ;; - 8664:Windows_NT:*) - echo x86_64-pc-mks - exit ;; - i*:Windows_NT*:* | Pentium*:Windows_NT*:*) - # How do we know it's Interix rather than the generic POSIX subsystem? - # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we - # UNAME_MACHINE based on the output of uname instead of i386? - echo i586-pc-interix - exit ;; - i*:UWIN*:*) - echo ${UNAME_MACHINE}-pc-uwin - exit ;; - amd64:CYGWIN*:*:* | x86_64:CYGWIN*:*:*) - echo x86_64-unknown-cygwin - exit ;; - p*:CYGWIN*:*) - echo powerpcle-unknown-cygwin - exit ;; - prep*:SunOS:5.*:*) - echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'` - exit ;; - *:GNU:*:*) - # the GNU system - echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'` - exit ;; - *:GNU/*:*:*) - # other systems with GNU libc and userland - echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu - exit ;; - i*86:Minix:*:*) - echo ${UNAME_MACHINE}-pc-minix - exit ;; - alpha:Linux:*:*) - case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in - EV5) UNAME_MACHINE=alphaev5 ;; - EV56) UNAME_MACHINE=alphaev56 ;; - PCA56) UNAME_MACHINE=alphapca56 ;; - PCA57) UNAME_MACHINE=alphapca56 ;; - EV6) UNAME_MACHINE=alphaev6 ;; - EV67) UNAME_MACHINE=alphaev67 ;; - EV68*) UNAME_MACHINE=alphaev68 ;; - esac - objdump --private-headers /bin/sh | grep -q ld.so.1 - if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi - echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC} - exit ;; - arm*:Linux:*:*) - eval $set_cc_for_build - if echo __ARM_EABI__ | $CC_FOR_BUILD -E - 2>/dev/null \ - | grep -q __ARM_EABI__ - then - echo ${UNAME_MACHINE}-unknown-linux-gnu - else - echo ${UNAME_MACHINE}-unknown-linux-gnueabi - fi - exit ;; - avr32*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - cris:Linux:*:*) - echo cris-axis-linux-gnu - exit ;; - crisv32:Linux:*:*) - echo crisv32-axis-linux-gnu - exit ;; - frv:Linux:*:*) - echo frv-unknown-linux-gnu - exit ;; - i*86:Linux:*:*) - echo ${UNAME_MACHINE}-pc-linux-gnu - exit ;; - ia64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m32r*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - m68*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - mips:Linux:*:* | mips64:Linux:*:*) - eval $set_cc_for_build - sed 's/^ //' << EOF >$dummy.c - #undef CPU - #undef ${UNAME_MACHINE} - #undef ${UNAME_MACHINE}el - #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL) - CPU=${UNAME_MACHINE}el - #else - #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB) - CPU=${UNAME_MACHINE} - #else - CPU= - #endif - #endif -EOF - eval "`$CC_FOR_BUILD -E $dummy.c 2>/dev/null | sed -n ' - /^CPU/{ - s: ::g - p - }'`" - test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; } - ;; - or32:Linux:*:*) - echo or32-unknown-linux-gnu - exit ;; - padre:Linux:*:*) - echo sparc-unknown-linux-gnu - exit ;; - parisc64:Linux:*:* | hppa64:Linux:*:*) - echo hppa64-unknown-linux-gnu - exit ;; - parisc:Linux:*:* | hppa:Linux:*:*) - # Look for CPU level - case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in - PA7*) echo hppa1.1-unknown-linux-gnu ;; - PA8*) echo hppa2.0-unknown-linux-gnu ;; - *) echo hppa-unknown-linux-gnu ;; - esac - exit ;; - ppc64:Linux:*:*) - echo powerpc64-unknown-linux-gnu - exit ;; - ppc:Linux:*:*) - echo powerpc-unknown-linux-gnu - exit ;; - s390:Linux:*:* | s390x:Linux:*:*) - echo ${UNAME_MACHINE}-ibm-linux - exit ;; - sh64*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sh*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - sparc:Linux:*:* | sparc64:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - vax:Linux:*:*) - echo ${UNAME_MACHINE}-dec-linux-gnu - exit ;; - x86_64:Linux:*:*) - echo x86_64-unknown-linux-gnu - exit ;; - xtensa*:Linux:*:*) - echo ${UNAME_MACHINE}-unknown-linux-gnu - exit ;; - i*86:DYNIX/ptx:4*:*) - # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there. - # earlier versions are messed up and put the nodename in both - # sysname and nodename. - echo i386-sequent-sysv4 - exit ;; - i*86:UNIX_SV:4.2MP:2.*) - # Unixware is an offshoot of SVR4, but it has its own version - # number series starting with 2... - # I am not positive that other SVR4 systems won't match this, - # I just have to hope. -- rms. - # Use sysv4.2uw... so that sysv4* matches it. - echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION} - exit ;; - i*86:OS/2:*:*) - # If we were able to find `uname', then EMX Unix compatibility - # is probably installed. - echo ${UNAME_MACHINE}-pc-os2-emx - exit ;; - i*86:XTS-300:*:STOP) - echo ${UNAME_MACHINE}-unknown-stop - exit ;; - i*86:atheos:*:*) - echo ${UNAME_MACHINE}-unknown-atheos - exit ;; - i*86:syllable:*:*) - echo ${UNAME_MACHINE}-pc-syllable - exit ;; - i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.[02]*:*) - echo i386-unknown-lynxos${UNAME_RELEASE} - exit ;; - i*86:*DOS:*:*) - echo ${UNAME_MACHINE}-pc-msdosdjgpp - exit ;; - i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*) - UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'` - if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then - echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL} - else - echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL} - fi - exit ;; - i*86:*:5:[678]*) - # UnixWare 7.x, OpenUNIX and OpenServer 6. - case `/bin/uname -X | grep "^Machine"` in - *486*) UNAME_MACHINE=i486 ;; - *Pentium) UNAME_MACHINE=i586 ;; - *Pent*|*Celeron) UNAME_MACHINE=i686 ;; - esac - echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION} - exit ;; - i*86:*:3.2:*) - if test -f /usr/options/cb.name; then - UNAME_REL=`sed -n 's/.*Version //p' /dev/null >/dev/null ; then - UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')` - (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486 - (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \ - && UNAME_MACHINE=i586 - (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \ - && UNAME_MACHINE=i686 - (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \ - && UNAME_MACHINE=i686 - echo ${UNAME_MACHINE}-pc-sco$UNAME_REL - else - echo ${UNAME_MACHINE}-pc-sysv32 - fi - exit ;; - pc:*:*:*) - # Left here for compatibility: - # uname -m prints for DJGPP always 'pc', but it prints nothing about - # the processor, so we play safe by assuming i586. - # Note: whatever this is, it MUST be the same as what config.sub - # prints for the "djgpp" host, or else GDB configury will decide that - # this is a cross-build. - echo i586-pc-msdosdjgpp - exit ;; - Intel:Mach:3*:*) - echo i386-pc-mach3 - exit ;; - paragon:*:*:*) - echo i860-intel-osf1 - exit ;; - i860:*:4.*:*) # i860-SVR4 - if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then - echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4 - else # Add other i860-SVR4 vendors below as they are discovered. - echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4 - fi - exit ;; - mini*:CTIX:SYS*5:*) - # "miniframe" - echo m68010-convergent-sysv - exit ;; - mc68k:UNIX:SYSTEM5:3.51m) - echo m68k-convergent-sysv - exit ;; - M680?0:D-NIX:5.3:*) - echo m68k-diab-dnix - exit ;; - M68*:*:R3V[5678]*:*) - test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;; - 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0) - OS_REL='' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*) - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4; exit; } ;; - NCR*:*:4.2:* | MPRAS*:*:4.2:*) - OS_REL='.3' - test -r /etc/.relid \ - && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid` - /bin/uname -p 2>/dev/null | grep 86 >/dev/null \ - && { echo i486-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } - /bin/uname -p 2>/dev/null | /bin/grep pteron >/dev/null \ - && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;; - m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*) - echo m68k-unknown-lynxos${UNAME_RELEASE} - exit ;; - mc68030:UNIX_System_V:4.*:*) - echo m68k-atari-sysv4 - exit ;; - TSUNAMI:LynxOS:2.*:*) - echo sparc-unknown-lynxos${UNAME_RELEASE} - exit ;; - rs6000:LynxOS:2.*:*) - echo rs6000-unknown-lynxos${UNAME_RELEASE} - exit ;; - PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.[02]*:*) - echo powerpc-unknown-lynxos${UNAME_RELEASE} - exit ;; - SM[BE]S:UNIX_SV:*:*) - echo mips-dde-sysv${UNAME_RELEASE} - exit ;; - RM*:ReliantUNIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - RM*:SINIX-*:*:*) - echo mips-sni-sysv4 - exit ;; - *:SINIX-*:*:*) - if uname -p 2>/dev/null >/dev/null ; then - UNAME_MACHINE=`(uname -p) 2>/dev/null` - echo ${UNAME_MACHINE}-sni-sysv4 - else - echo ns32k-sni-sysv - fi - exit ;; - PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort - # says - echo i586-unisys-sysv4 - exit ;; - *:UNIX_System_V:4*:FTX*) - # From Gerald Hewes . - # How about differentiating between stratus architectures? -djm - echo hppa1.1-stratus-sysv4 - exit ;; - *:*:*:FTX*) - # From seanf@swdc.stratus.com. - echo i860-stratus-sysv4 - exit ;; - i*86:VOS:*:*) - # From Paul.Green@stratus.com. - echo ${UNAME_MACHINE}-stratus-vos - exit ;; - *:VOS:*:*) - # From Paul.Green@stratus.com. - echo hppa1.1-stratus-vos - exit ;; - mc68*:A/UX:*:*) - echo m68k-apple-aux${UNAME_RELEASE} - exit ;; - news*:NEWS-OS:6*:*) - echo mips-sony-newsos6 - exit ;; - R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*) - if [ -d /usr/nec ]; then - echo mips-nec-sysv${UNAME_RELEASE} - else - echo mips-unknown-sysv${UNAME_RELEASE} - fi - exit ;; - BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only. - echo powerpc-be-beos - exit ;; - BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only. - echo powerpc-apple-beos - exit ;; - BePC:BeOS:*:*) # BeOS running on Intel PC compatible. - echo i586-pc-beos - exit ;; - BePC:Haiku:*:*) # Haiku running on Intel PC compatible. - echo i586-pc-haiku - exit ;; - SX-4:SUPER-UX:*:*) - echo sx4-nec-superux${UNAME_RELEASE} - exit ;; - SX-5:SUPER-UX:*:*) - echo sx5-nec-superux${UNAME_RELEASE} - exit ;; - SX-6:SUPER-UX:*:*) - echo sx6-nec-superux${UNAME_RELEASE} - exit ;; - SX-7:SUPER-UX:*:*) - echo sx7-nec-superux${UNAME_RELEASE} - exit ;; - SX-8:SUPER-UX:*:*) - echo sx8-nec-superux${UNAME_RELEASE} - exit ;; - SX-8R:SUPER-UX:*:*) - echo sx8r-nec-superux${UNAME_RELEASE} - exit ;; - Power*:Rhapsody:*:*) - echo powerpc-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Rhapsody:*:*) - echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE} - exit ;; - *:Darwin:*:*) - UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown - case $UNAME_PROCESSOR in - i386) - eval $set_cc_for_build - if [ "$CC_FOR_BUILD" != 'no_compiler_found' ]; then - if (echo '#ifdef __LP64__'; echo IS_64BIT_ARCH; echo '#endif') | \ - (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) | \ - grep IS_64BIT_ARCH >/dev/null - then - UNAME_PROCESSOR="x86_64" - fi - fi ;; - unknown) UNAME_PROCESSOR=powerpc ;; - esac - echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE} - exit ;; - *:procnto*:*:* | *:QNX:[0123456789]*:*) - UNAME_PROCESSOR=`uname -p` - if test "$UNAME_PROCESSOR" = "x86"; then - UNAME_PROCESSOR=i386 - UNAME_MACHINE=pc - fi - echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE} - exit ;; - *:QNX:*:4*) - echo i386-pc-qnx - exit ;; - NSE-?:NONSTOP_KERNEL:*:*) - echo nse-tandem-nsk${UNAME_RELEASE} - exit ;; - NSR-?:NONSTOP_KERNEL:*:*) - echo nsr-tandem-nsk${UNAME_RELEASE} - exit ;; - *:NonStop-UX:*:*) - echo mips-compaq-nonstopux - exit ;; - BS2000:POSIX*:*:*) - echo bs2000-siemens-sysv - exit ;; - DS/*:UNIX_System_V:*:*) - echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE} - exit ;; - *:Plan9:*:*) - # "uname -m" is not consistent, so use $cputype instead. 386 - # is converted to i386 for consistency with other x86 - # operating systems. - if test "$cputype" = "386"; then - UNAME_MACHINE=i386 - else - UNAME_MACHINE="$cputype" - fi - echo ${UNAME_MACHINE}-unknown-plan9 - exit ;; - *:TOPS-10:*:*) - echo pdp10-unknown-tops10 - exit ;; - *:TENEX:*:*) - echo pdp10-unknown-tenex - exit ;; - KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*) - echo pdp10-dec-tops20 - exit ;; - XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*) - echo pdp10-xkl-tops20 - exit ;; - *:TOPS-20:*:*) - echo pdp10-unknown-tops20 - exit ;; - *:ITS:*:*) - echo pdp10-unknown-its - exit ;; - SEI:*:*:SEIUX) - echo mips-sei-seiux${UNAME_RELEASE} - exit ;; - *:DragonFly:*:*) - echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'` - exit ;; - *:*VMS:*:*) - UNAME_MACHINE=`(uname -p) 2>/dev/null` - case "${UNAME_MACHINE}" in - A*) echo alpha-dec-vms ; exit ;; - I*) echo ia64-dec-vms ; exit ;; - V*) echo vax-dec-vms ; exit ;; - esac ;; - *:XENIX:*:SysV) - echo i386-pc-xenix - exit ;; - i*86:skyos:*:*) - echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//' - exit ;; - i*86:rdos:*:*) - echo ${UNAME_MACHINE}-pc-rdos - exit ;; - i*86:AROS:*:*) - echo ${UNAME_MACHINE}-pc-aros - exit ;; -esac - -#echo '(No uname command or uname output not recognized.)' 1>&2 -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2 - -eval $set_cc_for_build -cat >$dummy.c < -# include -#endif -main () -{ -#if defined (sony) -#if defined (MIPSEB) - /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed, - I don't know.... */ - printf ("mips-sony-bsd\n"); exit (0); -#else -#include - printf ("m68k-sony-newsos%s\n", -#ifdef NEWSOS4 - "4" -#else - "" -#endif - ); exit (0); -#endif -#endif - -#if defined (__arm) && defined (__acorn) && defined (__unix) - printf ("arm-acorn-riscix\n"); exit (0); -#endif - -#if defined (hp300) && !defined (hpux) - printf ("m68k-hp-bsd\n"); exit (0); -#endif - -#if defined (NeXT) -#if !defined (__ARCHITECTURE__) -#define __ARCHITECTURE__ "m68k" -#endif - int version; - version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`; - if (version < 4) - printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version); - else - printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version); - exit (0); -#endif - -#if defined (MULTIMAX) || defined (n16) -#if defined (UMAXV) - printf ("ns32k-encore-sysv\n"); exit (0); -#else -#if defined (CMU) - printf ("ns32k-encore-mach\n"); exit (0); -#else - printf ("ns32k-encore-bsd\n"); exit (0); -#endif -#endif -#endif - -#if defined (__386BSD__) - printf ("i386-pc-bsd\n"); exit (0); -#endif - -#if defined (sequent) -#if defined (i386) - printf ("i386-sequent-dynix\n"); exit (0); -#endif -#if defined (ns32000) - printf ("ns32k-sequent-dynix\n"); exit (0); -#endif -#endif - -#if defined (_SEQUENT_) - struct utsname un; - - uname(&un); - - if (strncmp(un.version, "V2", 2) == 0) { - printf ("i386-sequent-ptx2\n"); exit (0); - } - if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */ - printf ("i386-sequent-ptx1\n"); exit (0); - } - printf ("i386-sequent-ptx\n"); exit (0); - -#endif - -#if defined (vax) -# if !defined (ultrix) -# include -# if defined (BSD) -# if BSD == 43 - printf ("vax-dec-bsd4.3\n"); exit (0); -# else -# if BSD == 199006 - printf ("vax-dec-bsd4.3reno\n"); exit (0); -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# endif -# else - printf ("vax-dec-bsd\n"); exit (0); -# endif -# else - printf ("vax-dec-ultrix\n"); exit (0); -# endif -#endif - -#if defined (alliant) && defined (i860) - printf ("i860-alliant-bsd\n"); exit (0); -#endif - - exit (1); -} -EOF - -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` && - { echo "$SYSTEM_NAME"; exit; } - -# Apollos put the system type in the environment. - -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; } - -# Convex versions that predate uname can use getsysinfo(1) - -if [ -x /usr/convex/getsysinfo ] -then - case `getsysinfo -f cpu_type` in - c1*) - echo c1-convex-bsd - exit ;; - c2*) - if getsysinfo -f scalar_acc - then echo c32-convex-bsd - else echo c2-convex-bsd - fi - exit ;; - c34*) - echo c34-convex-bsd - exit ;; - c38*) - echo c38-convex-bsd - exit ;; - c4*) - echo c4-convex-bsd - exit ;; - esac -fi - -cat >&2 < in order to provide the needed -information to handle your system. - -config.guess timestamp = $timestamp - -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null` - -hostinfo = `(hostinfo) 2>/dev/null` -/bin/universe = `(/bin/universe) 2>/dev/null` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null` -/bin/arch = `(/bin/arch) 2>/dev/null` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null` - -UNAME_MACHINE = ${UNAME_MACHINE} -UNAME_RELEASE = ${UNAME_RELEASE} -UNAME_SYSTEM = ${UNAME_SYSTEM} -UNAME_VERSION = ${UNAME_VERSION} -EOF - -exit 1 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/config.sub b/config.sub deleted file mode 100644 index 5ecc18b6a..000000000 --- a/config.sub +++ /dev/null @@ -1,1700 +0,0 @@ -#! /bin/sh -# Configuration validation subroutine script. -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, -# 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 -# Free Software Foundation, Inc. - -timestamp='2009-10-07' - -# This file is (in principle) common to ALL GNU software. -# The presence of a machine in this file suggests that SOME GNU software -# can handle that machine. It does not imply ALL GNU software can. -# -# This file is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA -# 02110-1301, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - - -# Please send patches to . Submit a context -# diff and a properly formatted GNU ChangeLog entry. -# -# Configuration subroutine to validate and canonicalize a configuration type. -# Supply the specified configuration type as an argument. -# If it is invalid, we print an error message on stderr and exit with code 1. -# Otherwise, we print the canonical config type on stdout and succeed. - -# You can get the latest version of this script from: -# http://git.savannah.gnu.org/gitweb/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD - -# This file is supposed to be the same for all GNU packages -# and recognize all the CPU types, system types and aliases -# that are meaningful with *any* GNU software. -# Each package is responsible for reporting which valid configurations -# it does not support. The user should be able to distinguish -# a failure to support a valid configuration from a meaningless -# configuration. - -# The goal of this file is to map all the various variations of a given -# machine specification into a single specification in the form: -# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM -# or in some cases, the newer four-part form: -# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM -# It is wrong to echo any other type of specification. - -me=`echo "$0" | sed -e 's,.*/,,'` - -usage="\ -Usage: $0 [OPTION] CPU-MFR-OPSYS - $0 [OPTION] ALIAS - -Canonicalize a configuration name. - -Operation modes: - -h, --help print this help, then exit - -t, --time-stamp print date of last modification, then exit - -v, --version print version number, then exit - -Report bugs and patches to ." - -version="\ -GNU config.sub ($timestamp) - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. - -This is free software; see the source for copying conditions. There is NO -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE." - -help=" -Try \`$me --help' for more information." - -# Parse command line -while test $# -gt 0 ; do - case $1 in - --time-stamp | --time* | -t ) - echo "$timestamp" ; exit ;; - --version | -v ) - echo "$version" ; exit ;; - --help | --h* | -h ) - echo "$usage"; exit ;; - -- ) # Stop option processing - shift; break ;; - - ) # Use stdin as input. - break ;; - -* ) - echo "$me: invalid option $1$help" - exit 1 ;; - - *local*) - # First pass through any local machine types. - echo $1 - exit ;; - - * ) - break ;; - esac -done - -case $# in - 0) echo "$me: missing argument$help" >&2 - exit 1;; - 1) ;; - *) echo "$me: too many arguments$help" >&2 - exit 1;; -esac - -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any). -# Here we must recognize all the valid KERNEL-OS combinations. -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'` -case $maybe_os in - nto-qnx* | linux-gnu* | linux-dietlibc | linux-newlib* | linux-uclibc* | \ - uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ - storm-chaos* | os2-emx* | rtmk-nova*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; - *) - basic_machine=`echo $1 | sed 's/-[^-]*$//'` - if [ $basic_machine != $1 ] - then os=`echo $1 | sed 's/.*-/-/'` - else os=; fi - ;; -esac - -### Let's recognize common machines as not being operating systems so -### that things like config.sub decstation-3100 work. We also -### recognize some manufacturers as not being operating systems, so we -### can provide default operating systems below. -case $os in - -sun*os*) - # Prevent following clause from handling this invalid input. - ;; - -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \ - -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \ - -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \ - -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\ - -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \ - -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \ - -apple | -axis | -knuth | -cray | -microblaze) - os= - basic_machine=$1 - ;; - -bluegene*) - os=-cnk - ;; - -sim | -cisco | -oki | -wec | -winbond) - os= - basic_machine=$1 - ;; - -scout) - ;; - -wrs) - os=-vxworks - basic_machine=$1 - ;; - -chorusos*) - os=-chorusos - basic_machine=$1 - ;; - -chorusrdb) - os=-chorusrdb - basic_machine=$1 - ;; - -hiux*) - os=-hiuxwe2 - ;; - -sco6) - os=-sco5v6 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5) - os=-sco3.2v5 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco4) - os=-sco3.2v4 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2.[4-9]*) - os=`echo $os | sed -e 's/sco3.2./sco3.2v/'` - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco3.2v[4-9]*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco5v6*) - # Don't forget version if it is 3.2v4 or newer. - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -sco*) - os=-sco3.2v2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -udk*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -isc) - os=-isc2.2 - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -clix*) - basic_machine=clipper-intergraph - ;; - -isc*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'` - ;; - -lynx*) - os=-lynxos - ;; - -ptx*) - basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'` - ;; - -windowsnt*) - os=`echo $os | sed -e 's/windowsnt/winnt/'` - ;; - -psos*) - os=-psos - ;; - -mint | -mint[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; -esac - -# Decode aliases for certain CPU-COMPANY combinations. -case $basic_machine in - # Recognize the basic CPU types without company name. - # Some are omitted here because they have special meanings below. - 1750a | 580 \ - | a29k \ - | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \ - | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \ - | am33_2.0 \ - | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr | avr32 \ - | bfin \ - | c4x | clipper \ - | d10v | d30v | dlx | dsp16xx \ - | fido | fr30 | frv \ - | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \ - | i370 | i860 | i960 | ia64 \ - | ip2k | iq2000 \ - | lm32 \ - | m32c | m32r | m32rle | m68000 | m68k | m88k \ - | maxq | mb | microblaze | mcore | mep | metag \ - | mips | mipsbe | mipseb | mipsel | mipsle \ - | mips16 \ - | mips64 | mips64el \ - | mips64octeon | mips64octeonel \ - | mips64orion | mips64orionel \ - | mips64r5900 | mips64r5900el \ - | mips64vr | mips64vrel \ - | mips64vr4100 | mips64vr4100el \ - | mips64vr4300 | mips64vr4300el \ - | mips64vr5000 | mips64vr5000el \ - | mips64vr5900 | mips64vr5900el \ - | mipsisa32 | mipsisa32el \ - | mipsisa32r2 | mipsisa32r2el \ - | mipsisa64 | mipsisa64el \ - | mipsisa64r2 | mipsisa64r2el \ - | mipsisa64sb1 | mipsisa64sb1el \ - | mipsisa64sr71k | mipsisa64sr71kel \ - | mipstx39 | mipstx39el \ - | mn10200 | mn10300 \ - | moxie \ - | mt \ - | msp430 \ - | nios | nios2 \ - | ns16k | ns32k \ - | or32 \ - | pdp10 | pdp11 | pj | pjl \ - | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \ - | pyramid \ - | rx \ - | score \ - | sh | sh[1234] | sh[24]a | sh[24]aeb | sh[23]e | sh[34]eb | sheb | shbe | shle | sh[1234]le | sh3ele \ - | sh64 | sh64le \ - | sparc | sparc64 | sparc64b | sparc64v | sparc86x | sparclet | sparclite \ - | sparcv8 | sparcv9 | sparcv9b | sparcv9v \ - | spu | strongarm \ - | tahoe | thumb | tic4x | tic80 | tron \ - | v850 | v850e \ - | we32k \ - | x86 | xc16x | xscale | xscalee[bl] | xstormy16 | xtensa \ - | z8k | z80) - basic_machine=$basic_machine-unknown - ;; - m6811 | m68hc11 | m6812 | m68hc12 | picochip) - # Motorola 68HC11/12. - basic_machine=$basic_machine-unknown - os=-none - ;; - m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k) - ;; - ms1) - basic_machine=mt-unknown - ;; - - # We use `pc' rather than `unknown' - # because (1) that's what they normally are, and - # (2) the word "unknown" tends to confuse beginning users. - i*86 | x86_64) - basic_machine=$basic_machine-pc - ;; - # Object if more than one company name word. - *-*-*) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; - # Recognize the basic CPU types with company name. - 580-* \ - | a29k-* \ - | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \ - | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \ - | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \ - | arm-* | armbe-* | armle-* | armeb-* | armv*-* \ - | avr-* | avr32-* \ - | bfin-* | bs2000-* \ - | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \ - | clipper-* | craynv-* | cydra-* \ - | d10v-* | d30v-* | dlx-* \ - | elxsi-* \ - | f30[01]-* | f700-* | fido-* | fr30-* | frv-* | fx80-* \ - | h8300-* | h8500-* \ - | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \ - | i*86-* | i860-* | i960-* | ia64-* \ - | ip2k-* | iq2000-* \ - | lm32-* \ - | m32c-* | m32r-* | m32rle-* \ - | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \ - | m88110-* | m88k-* | maxq-* | mcore-* | metag-* | microblaze-* \ - | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \ - | mips16-* \ - | mips64-* | mips64el-* \ - | mips64octeon-* | mips64octeonel-* \ - | mips64orion-* | mips64orionel-* \ - | mips64r5900-* | mips64r5900el-* \ - | mips64vr-* | mips64vrel-* \ - | mips64vr4100-* | mips64vr4100el-* \ - | mips64vr4300-* | mips64vr4300el-* \ - | mips64vr5000-* | mips64vr5000el-* \ - | mips64vr5900-* | mips64vr5900el-* \ - | mipsisa32-* | mipsisa32el-* \ - | mipsisa32r2-* | mipsisa32r2el-* \ - | mipsisa64-* | mipsisa64el-* \ - | mipsisa64r2-* | mipsisa64r2el-* \ - | mipsisa64sb1-* | mipsisa64sb1el-* \ - | mipsisa64sr71k-* | mipsisa64sr71kel-* \ - | mipstx39-* | mipstx39el-* \ - | mmix-* \ - | mt-* \ - | msp430-* \ - | nios-* | nios2-* \ - | none-* | np1-* | ns16k-* | ns32k-* \ - | orion-* \ - | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \ - | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \ - | pyramid-* \ - | romp-* | rs6000-* | rx-* \ - | sh-* | sh[1234]-* | sh[24]a-* | sh[24]aeb-* | sh[23]e-* | sh[34]eb-* | sheb-* | shbe-* \ - | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \ - | sparc-* | sparc64-* | sparc64b-* | sparc64v-* | sparc86x-* | sparclet-* \ - | sparclite-* \ - | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \ - | tahoe-* | thumb-* \ - | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \ - | tron-* \ - | v850-* | v850e-* | vax-* \ - | we32k-* \ - | x86-* | x86_64-* | xc16x-* | xps100-* | xscale-* | xscalee[bl]-* \ - | xstormy16-* | xtensa*-* \ - | ymp-* \ - | z8k-* | z80-*) - ;; - # Recognize the basic CPU types without company name, with glob match. - xtensa*) - basic_machine=$basic_machine-unknown - ;; - # Recognize the various machine names and aliases which stand - # for a CPU type and a company and sometimes even an OS. - 386bsd) - basic_machine=i386-unknown - os=-bsd - ;; - 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc) - basic_machine=m68000-att - ;; - 3b*) - basic_machine=we32k-att - ;; - a29khif) - basic_machine=a29k-amd - os=-udi - ;; - abacus) - basic_machine=abacus-unknown - ;; - adobe68k) - basic_machine=m68010-adobe - os=-scout - ;; - alliant | fx80) - basic_machine=fx80-alliant - ;; - altos | altos3068) - basic_machine=m68k-altos - ;; - am29k) - basic_machine=a29k-none - os=-bsd - ;; - amd64) - basic_machine=x86_64-pc - ;; - amd64-*) - basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - amdahl) - basic_machine=580-amdahl - os=-sysv - ;; - amiga | amiga-*) - basic_machine=m68k-unknown - ;; - amigaos | amigados) - basic_machine=m68k-unknown - os=-amigaos - ;; - amigaunix | amix) - basic_machine=m68k-unknown - os=-sysv4 - ;; - apollo68) - basic_machine=m68k-apollo - os=-sysv - ;; - apollo68bsd) - basic_machine=m68k-apollo - os=-bsd - ;; - aros) - basic_machine=i386-pc - os=-aros - ;; - aux) - basic_machine=m68k-apple - os=-aux - ;; - balance) - basic_machine=ns32k-sequent - os=-dynix - ;; - blackfin) - basic_machine=bfin-unknown - os=-linux - ;; - blackfin-*) - basic_machine=bfin-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - bluegene*) - basic_machine=powerpc-ibm - os=-cnk - ;; - c90) - basic_machine=c90-cray - os=-unicos - ;; - cegcc) - basic_machine=arm-unknown - os=-cegcc - ;; - convex-c1) - basic_machine=c1-convex - os=-bsd - ;; - convex-c2) - basic_machine=c2-convex - os=-bsd - ;; - convex-c32) - basic_machine=c32-convex - os=-bsd - ;; - convex-c34) - basic_machine=c34-convex - os=-bsd - ;; - convex-c38) - basic_machine=c38-convex - os=-bsd - ;; - cray | j90) - basic_machine=j90-cray - os=-unicos - ;; - craynv) - basic_machine=craynv-cray - os=-unicosmp - ;; - cr16) - basic_machine=cr16-unknown - os=-elf - ;; - crds | unos) - basic_machine=m68k-crds - ;; - crisv32 | crisv32-* | etraxfs*) - basic_machine=crisv32-axis - ;; - cris | cris-* | etrax*) - basic_machine=cris-axis - ;; - crx) - basic_machine=crx-unknown - os=-elf - ;; - da30 | da30-*) - basic_machine=m68k-da30 - ;; - decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn) - basic_machine=mips-dec - ;; - decsystem10* | dec10*) - basic_machine=pdp10-dec - os=-tops10 - ;; - decsystem20* | dec20*) - basic_machine=pdp10-dec - os=-tops20 - ;; - delta | 3300 | motorola-3300 | motorola-delta \ - | 3300-motorola | delta-motorola) - basic_machine=m68k-motorola - ;; - delta88) - basic_machine=m88k-motorola - os=-sysv3 - ;; - dicos) - basic_machine=i686-pc - os=-dicos - ;; - djgpp) - basic_machine=i586-pc - os=-msdosdjgpp - ;; - dpx20 | dpx20-*) - basic_machine=rs6000-bull - os=-bosx - ;; - dpx2* | dpx2*-bull) - basic_machine=m68k-bull - os=-sysv3 - ;; - ebmon29k) - basic_machine=a29k-amd - os=-ebmon - ;; - elxsi) - basic_machine=elxsi-elxsi - os=-bsd - ;; - encore | umax | mmax) - basic_machine=ns32k-encore - ;; - es1800 | OSE68k | ose68k | ose | OSE) - basic_machine=m68k-ericsson - os=-ose - ;; - fx2800) - basic_machine=i860-alliant - ;; - genix) - basic_machine=ns32k-ns - ;; - gmicro) - basic_machine=tron-gmicro - os=-sysv - ;; - go32) - basic_machine=i386-pc - os=-go32 - ;; - h3050r* | hiux*) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - h8300hms) - basic_machine=h8300-hitachi - os=-hms - ;; - h8300xray) - basic_machine=h8300-hitachi - os=-xray - ;; - h8500hms) - basic_machine=h8500-hitachi - os=-hms - ;; - harris) - basic_machine=m88k-harris - os=-sysv3 - ;; - hp300-*) - basic_machine=m68k-hp - ;; - hp300bsd) - basic_machine=m68k-hp - os=-bsd - ;; - hp300hpux) - basic_machine=m68k-hp - os=-hpux - ;; - hp3k9[0-9][0-9] | hp9[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k2[0-9][0-9] | hp9k31[0-9]) - basic_machine=m68000-hp - ;; - hp9k3[2-9][0-9]) - basic_machine=m68k-hp - ;; - hp9k6[0-9][0-9] | hp6[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hp9k7[0-79][0-9] | hp7[0-79][0-9]) - basic_machine=hppa1.1-hp - ;; - hp9k78[0-9] | hp78[0-9]) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893) - # FIXME: really hppa2.0-hp - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][13679] | hp8[0-9][13679]) - basic_machine=hppa1.1-hp - ;; - hp9k8[0-9][0-9] | hp8[0-9][0-9]) - basic_machine=hppa1.0-hp - ;; - hppa-next) - os=-nextstep3 - ;; - hppaosf) - basic_machine=hppa1.1-hp - os=-osf - ;; - hppro) - basic_machine=hppa1.1-hp - os=-proelf - ;; - i370-ibm* | ibm*) - basic_machine=i370-ibm - ;; -# I'm not sure what "Sysv32" means. Should this be sysv3.2? - i*86v32) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv32 - ;; - i*86v4*) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv4 - ;; - i*86v) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-sysv - ;; - i*86sol2) - basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'` - os=-solaris2 - ;; - i386mach) - basic_machine=i386-mach - os=-mach - ;; - i386-vsta | vsta) - basic_machine=i386-unknown - os=-vsta - ;; - iris | iris4d) - basic_machine=mips-sgi - case $os in - -irix*) - ;; - *) - os=-irix4 - ;; - esac - ;; - isi68 | isi) - basic_machine=m68k-isi - os=-sysv - ;; - m68knommu) - basic_machine=m68k-unknown - os=-linux - ;; - m68knommu-*) - basic_machine=m68k-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - m88k-omron*) - basic_machine=m88k-omron - ;; - magnum | m3230) - basic_machine=mips-mips - os=-sysv - ;; - merlin) - basic_machine=ns32k-utek - os=-sysv - ;; - microblaze) - basic_machine=microblaze-xilinx - ;; - mingw32) - basic_machine=i386-pc - os=-mingw32 - ;; - mingw32ce) - basic_machine=arm-unknown - os=-mingw32ce - ;; - miniframe) - basic_machine=m68000-convergent - ;; - *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*) - basic_machine=m68k-atari - os=-mint - ;; - mips3*-*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'` - ;; - mips3*) - basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown - ;; - monitor) - basic_machine=m68k-rom68k - os=-coff - ;; - morphos) - basic_machine=powerpc-unknown - os=-morphos - ;; - msdos) - basic_machine=i386-pc - os=-msdos - ;; - ms1-*) - basic_machine=`echo $basic_machine | sed -e 's/ms1-/mt-/'` - ;; - mvs) - basic_machine=i370-ibm - os=-mvs - ;; - ncr3000) - basic_machine=i486-ncr - os=-sysv4 - ;; - netbsd386) - basic_machine=i386-unknown - os=-netbsd - ;; - netwinder) - basic_machine=armv4l-rebel - os=-linux - ;; - news | news700 | news800 | news900) - basic_machine=m68k-sony - os=-newsos - ;; - news1000) - basic_machine=m68030-sony - os=-newsos - ;; - news-3600 | risc-news) - basic_machine=mips-sony - os=-newsos - ;; - necv70) - basic_machine=v70-nec - os=-sysv - ;; - next | m*-next ) - basic_machine=m68k-next - case $os in - -nextstep* ) - ;; - -ns2*) - os=-nextstep2 - ;; - *) - os=-nextstep3 - ;; - esac - ;; - nh3000) - basic_machine=m68k-harris - os=-cxux - ;; - nh[45]000) - basic_machine=m88k-harris - os=-cxux - ;; - nindy960) - basic_machine=i960-intel - os=-nindy - ;; - mon960) - basic_machine=i960-intel - os=-mon960 - ;; - nonstopux) - basic_machine=mips-compaq - os=-nonstopux - ;; - np1) - basic_machine=np1-gould - ;; - nsr-tandem) - basic_machine=nsr-tandem - ;; - op50n-* | op60c-*) - basic_machine=hppa1.1-oki - os=-proelf - ;; - openrisc | openrisc-*) - basic_machine=or32-unknown - ;; - os400) - basic_machine=powerpc-ibm - os=-os400 - ;; - OSE68000 | ose68000) - basic_machine=m68000-ericsson - os=-ose - ;; - os68k) - basic_machine=m68k-none - os=-os68k - ;; - pa-hitachi) - basic_machine=hppa1.1-hitachi - os=-hiuxwe2 - ;; - paragon) - basic_machine=i860-intel - os=-osf - ;; - parisc) - basic_machine=hppa-unknown - os=-linux - ;; - parisc-*) - basic_machine=hppa-`echo $basic_machine | sed 's/^[^-]*-//'` - os=-linux - ;; - pbd) - basic_machine=sparc-tti - ;; - pbb) - basic_machine=m68k-tti - ;; - pc532 | pc532-*) - basic_machine=ns32k-pc532 - ;; - pc98) - basic_machine=i386-pc - ;; - pc98-*) - basic_machine=i386-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium | p5 | k5 | k6 | nexgen | viac3) - basic_machine=i586-pc - ;; - pentiumpro | p6 | 6x86 | athlon | athlon_*) - basic_machine=i686-pc - ;; - pentiumii | pentium2 | pentiumiii | pentium3) - basic_machine=i686-pc - ;; - pentium4) - basic_machine=i786-pc - ;; - pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*) - basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumpro-* | p6-* | 6x86-* | athlon-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*) - basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pentium4-*) - basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - pn) - basic_machine=pn-gould - ;; - power) basic_machine=power-ibm - ;; - ppc) basic_machine=powerpc-unknown - ;; - ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppcle | powerpclittle | ppc-le | powerpc-little) - basic_machine=powerpcle-unknown - ;; - ppcle-* | powerpclittle-*) - basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64) basic_machine=powerpc64-unknown - ;; - ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ppc64le | powerpc64little | ppc64-le | powerpc64-little) - basic_machine=powerpc64le-unknown - ;; - ppc64le-* | powerpc64little-*) - basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'` - ;; - ps2) - basic_machine=i386-ibm - ;; - pw32) - basic_machine=i586-unknown - os=-pw32 - ;; - rdos) - basic_machine=i386-pc - os=-rdos - ;; - rom68k) - basic_machine=m68k-rom68k - os=-coff - ;; - rm[46]00) - basic_machine=mips-siemens - ;; - rtpc | rtpc-*) - basic_machine=romp-ibm - ;; - s390 | s390-*) - basic_machine=s390-ibm - ;; - s390x | s390x-*) - basic_machine=s390x-ibm - ;; - sa29200) - basic_machine=a29k-amd - os=-udi - ;; - sb1) - basic_machine=mipsisa64sb1-unknown - ;; - sb1el) - basic_machine=mipsisa64sb1el-unknown - ;; - sde) - basic_machine=mipsisa32-sde - os=-elf - ;; - sei) - basic_machine=mips-sei - os=-seiux - ;; - sequent) - basic_machine=i386-sequent - ;; - sh) - basic_machine=sh-hitachi - os=-hms - ;; - sh5el) - basic_machine=sh5le-unknown - ;; - sh64) - basic_machine=sh64-unknown - ;; - sparclite-wrs | simso-wrs) - basic_machine=sparclite-wrs - os=-vxworks - ;; - sps7) - basic_machine=m68k-bull - os=-sysv2 - ;; - spur) - basic_machine=spur-unknown - ;; - st2000) - basic_machine=m68k-tandem - ;; - stratus) - basic_machine=i860-stratus - os=-sysv4 - ;; - sun2) - basic_machine=m68000-sun - ;; - sun2os3) - basic_machine=m68000-sun - os=-sunos3 - ;; - sun2os4) - basic_machine=m68000-sun - os=-sunos4 - ;; - sun3os3) - basic_machine=m68k-sun - os=-sunos3 - ;; - sun3os4) - basic_machine=m68k-sun - os=-sunos4 - ;; - sun4os3) - basic_machine=sparc-sun - os=-sunos3 - ;; - sun4os4) - basic_machine=sparc-sun - os=-sunos4 - ;; - sun4sol2) - basic_machine=sparc-sun - os=-solaris2 - ;; - sun3 | sun3-*) - basic_machine=m68k-sun - ;; - sun4) - basic_machine=sparc-sun - ;; - sun386 | sun386i | roadrunner) - basic_machine=i386-sun - ;; - sv1) - basic_machine=sv1-cray - os=-unicos - ;; - symmetry) - basic_machine=i386-sequent - os=-dynix - ;; - t3e) - basic_machine=alphaev5-cray - os=-unicos - ;; - t90) - basic_machine=t90-cray - os=-unicos - ;; - tic54x | c54x*) - basic_machine=tic54x-unknown - os=-coff - ;; - tic55x | c55x*) - basic_machine=tic55x-unknown - os=-coff - ;; - tic6x | c6x*) - basic_machine=tic6x-unknown - os=-coff - ;; - tile*) - basic_machine=tile-unknown - os=-linux-gnu - ;; - tx39) - basic_machine=mipstx39-unknown - ;; - tx39el) - basic_machine=mipstx39el-unknown - ;; - toad1) - basic_machine=pdp10-xkl - os=-tops20 - ;; - tower | tower-32) - basic_machine=m68k-ncr - ;; - tpf) - basic_machine=s390x-ibm - os=-tpf - ;; - udi29k) - basic_machine=a29k-amd - os=-udi - ;; - ultra3) - basic_machine=a29k-nyu - os=-sym1 - ;; - v810 | necv810) - basic_machine=v810-nec - os=-none - ;; - vaxv) - basic_machine=vax-dec - os=-sysv - ;; - vms) - basic_machine=vax-dec - os=-vms - ;; - vpp*|vx|vx-*) - basic_machine=f301-fujitsu - ;; - vxworks960) - basic_machine=i960-wrs - os=-vxworks - ;; - vxworks68) - basic_machine=m68k-wrs - os=-vxworks - ;; - vxworks29k) - basic_machine=a29k-wrs - os=-vxworks - ;; - w65*) - basic_machine=w65-wdc - os=-none - ;; - w89k-*) - basic_machine=hppa1.1-winbond - os=-proelf - ;; - xbox) - basic_machine=i686-pc - os=-mingw32 - ;; - xps | xps100) - basic_machine=xps100-honeywell - ;; - ymp) - basic_machine=ymp-cray - os=-unicos - ;; - z8k-*-coff) - basic_machine=z8k-unknown - os=-sim - ;; - z80-*-coff) - basic_machine=z80-unknown - os=-sim - ;; - none) - basic_machine=none-none - os=-none - ;; - -# Here we handle the default manufacturer of certain CPU types. It is in -# some cases the only manufacturer, in others, it is the most popular. - w89k) - basic_machine=hppa1.1-winbond - ;; - op50n) - basic_machine=hppa1.1-oki - ;; - op60c) - basic_machine=hppa1.1-oki - ;; - romp) - basic_machine=romp-ibm - ;; - mmix) - basic_machine=mmix-knuth - ;; - rs6000) - basic_machine=rs6000-ibm - ;; - vax) - basic_machine=vax-dec - ;; - pdp10) - # there are many clones, so DEC is not a safe bet - basic_machine=pdp10-unknown - ;; - pdp11) - basic_machine=pdp11-dec - ;; - we32k) - basic_machine=we32k-att - ;; - sh[1234] | sh[24]a | sh[24]aeb | sh[34]eb | sh[1234]le | sh[23]ele) - basic_machine=sh-unknown - ;; - sparc | sparcv8 | sparcv9 | sparcv9b | sparcv9v) - basic_machine=sparc-sun - ;; - cydra) - basic_machine=cydra-cydrome - ;; - orion) - basic_machine=orion-highlevel - ;; - orion105) - basic_machine=clipper-highlevel - ;; - mac | mpw | mac-mpw) - basic_machine=m68k-apple - ;; - pmac | pmac-mpw) - basic_machine=powerpc-apple - ;; - *-unknown) - # Make sure to match an already-canonicalized machine name. - ;; - *) - echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2 - exit 1 - ;; -esac - -# Here we canonicalize certain aliases for manufacturers. -case $basic_machine in - *-digital*) - basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'` - ;; - *-commodore*) - basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'` - ;; - *) - ;; -esac - -# Decode manufacturer-specific aliases for certain operating systems. - -if [ x"$os" != x"" ] -then -case $os in - # First match some system type aliases - # that might get confused with valid system types. - # -solaris* is a basic system type, with this one exception. - -solaris1 | -solaris1.*) - os=`echo $os | sed -e 's|solaris1|sunos4|'` - ;; - -solaris) - os=-solaris2 - ;; - -svr4*) - os=-sysv4 - ;; - -unixware*) - os=-sysv4.2uw - ;; - -gnu/linux*) - os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'` - ;; - # First accept the basic system types. - # The portable systems comes first. - # Each alternative MUST END IN A *, to match a version number. - # -sysv* is not here because it comes later, after sysvr4. - -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \ - | -*vms* | -sco* | -esix* | -isc* | -aix* | -cnk* | -sunos | -sunos[34]*\ - | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \ - | -kopensolaris* \ - | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \ - | -aos* | -aros* \ - | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \ - | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \ - | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* \ - | -openbsd* | -solidbsd* \ - | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \ - | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \ - | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \ - | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-newlib* | -linux-uclibc* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \ - | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \ - | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \ - | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \ - | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \ - | -skyos* | -haiku* | -rdos* | -toppers* | -drops* | -es*) - # Remember, each alternative MUST END IN *, to match a version number. - ;; - -qnx*) - case $basic_machine in - x86-* | i*86-*) - ;; - *) - os=-nto$os - ;; - esac - ;; - -nto-qnx*) - ;; - -nto*) - os=`echo $os | sed -e 's|nto|nto-qnx|'` - ;; - -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \ - | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \ - | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*) - ;; - -mac*) - os=`echo $os | sed -e 's|mac|macos|'` - ;; - -linux-dietlibc) - os=-linux-dietlibc - ;; - -linux*) - os=`echo $os | sed -e 's|linux|linux-gnu|'` - ;; - -sunos5*) - os=`echo $os | sed -e 's|sunos5|solaris2|'` - ;; - -sunos6*) - os=`echo $os | sed -e 's|sunos6|solaris3|'` - ;; - -opened*) - os=-openedition - ;; - -os400*) - os=-os400 - ;; - -wince*) - os=-wince - ;; - -osfrose*) - os=-osfrose - ;; - -osf*) - os=-osf - ;; - -utek*) - os=-bsd - ;; - -dynix*) - os=-bsd - ;; - -acis*) - os=-aos - ;; - -atheos*) - os=-atheos - ;; - -syllable*) - os=-syllable - ;; - -386bsd) - os=-bsd - ;; - -ctix* | -uts*) - os=-sysv - ;; - -nova*) - os=-rtmk-nova - ;; - -ns2 ) - os=-nextstep2 - ;; - -nsk*) - os=-nsk - ;; - # Preserve the version number of sinix5. - -sinix5.*) - os=`echo $os | sed -e 's|sinix|sysv|'` - ;; - -sinix*) - os=-sysv4 - ;; - -tpf*) - os=-tpf - ;; - -triton*) - os=-sysv3 - ;; - -oss*) - os=-sysv3 - ;; - -svr4) - os=-sysv4 - ;; - -svr3) - os=-sysv3 - ;; - -sysvr4) - os=-sysv4 - ;; - # This must come after -sysvr4. - -sysv*) - ;; - -ose*) - os=-ose - ;; - -es1800*) - os=-ose - ;; - -xenix) - os=-xenix - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - os=-mint - ;; - -aros*) - os=-aros - ;; - -kaos*) - os=-kaos - ;; - -zvmoe) - os=-zvmoe - ;; - -dicos*) - os=-dicos - ;; - -none) - ;; - *) - # Get rid of the `-' at the beginning of $os. - os=`echo $os | sed 's/[^-]*-//'` - echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2 - exit 1 - ;; -esac -else - -# Here we handle the default operating systems that come with various machines. -# The value should be what the vendor currently ships out the door with their -# machine or put another way, the most popular os provided with the machine. - -# Note that if you're going to try to match "-MANUFACTURER" here (say, -# "-sun"), then you have to tell the case statement up towards the top -# that MANUFACTURER isn't an operating system. Otherwise, code above -# will signal an error saying that MANUFACTURER isn't an operating -# system, and we'll never get to this point. - -case $basic_machine in - score-*) - os=-elf - ;; - spu-*) - os=-elf - ;; - *-acorn) - os=-riscix1.2 - ;; - arm*-rebel) - os=-linux - ;; - arm*-semi) - os=-aout - ;; - c4x-* | tic4x-*) - os=-coff - ;; - # This must come before the *-dec entry. - pdp10-*) - os=-tops20 - ;; - pdp11-*) - os=-none - ;; - *-dec | vax-*) - os=-ultrix4.2 - ;; - m68*-apollo) - os=-domain - ;; - i386-sun) - os=-sunos4.0.2 - ;; - m68000-sun) - os=-sunos3 - # This also exists in the configure program, but was not the - # default. - # os=-sunos4 - ;; - m68*-cisco) - os=-aout - ;; - mep-*) - os=-elf - ;; - mips*-cisco) - os=-elf - ;; - mips*-*) - os=-elf - ;; - or32-*) - os=-coff - ;; - *-tti) # must be before sparc entry or we get the wrong os. - os=-sysv3 - ;; - sparc-* | *-sun) - os=-sunos4.1.1 - ;; - *-be) - os=-beos - ;; - *-haiku) - os=-haiku - ;; - *-ibm) - os=-aix - ;; - *-knuth) - os=-mmixware - ;; - *-wec) - os=-proelf - ;; - *-winbond) - os=-proelf - ;; - *-oki) - os=-proelf - ;; - *-hp) - os=-hpux - ;; - *-hitachi) - os=-hiux - ;; - i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent) - os=-sysv - ;; - *-cbm) - os=-amigaos - ;; - *-dg) - os=-dgux - ;; - *-dolphin) - os=-sysv3 - ;; - m68k-ccur) - os=-rtu - ;; - m88k-omron*) - os=-luna - ;; - *-next ) - os=-nextstep - ;; - *-sequent) - os=-ptx - ;; - *-crds) - os=-unos - ;; - *-ns) - os=-genix - ;; - i370-*) - os=-mvs - ;; - *-next) - os=-nextstep3 - ;; - *-gould) - os=-sysv - ;; - *-highlevel) - os=-bsd - ;; - *-encore) - os=-bsd - ;; - *-sgi) - os=-irix - ;; - *-siemens) - os=-sysv4 - ;; - *-masscomp) - os=-rtu - ;; - f30[01]-fujitsu | f700-fujitsu) - os=-uxpv - ;; - *-rom68k) - os=-coff - ;; - *-*bug) - os=-coff - ;; - *-apple) - os=-macos - ;; - *-atari*) - os=-mint - ;; - *) - os=-none - ;; -esac -fi - -# Here we handle the case where we know the os, and the CPU type, but not the -# manufacturer. We pick the logical manufacturer. -vendor=unknown -case $basic_machine in - *-unknown) - case $os in - -riscix*) - vendor=acorn - ;; - -sunos*) - vendor=sun - ;; - -cnk*|-aix*) - vendor=ibm - ;; - -beos*) - vendor=be - ;; - -hpux*) - vendor=hp - ;; - -mpeix*) - vendor=hp - ;; - -hiux*) - vendor=hitachi - ;; - -unos*) - vendor=crds - ;; - -dgux*) - vendor=dg - ;; - -luna*) - vendor=omron - ;; - -genix*) - vendor=ns - ;; - -mvs* | -opened*) - vendor=ibm - ;; - -os400*) - vendor=ibm - ;; - -ptx*) - vendor=sequent - ;; - -tpf*) - vendor=ibm - ;; - -vxsim* | -vxworks* | -windiss*) - vendor=wrs - ;; - -aux*) - vendor=apple - ;; - -hms*) - vendor=hitachi - ;; - -mpw* | -macos*) - vendor=apple - ;; - -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*) - vendor=atari - ;; - -vos*) - vendor=stratus - ;; - esac - basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"` - ;; -esac - -echo $basic_machine$os -exit - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "timestamp='" -# time-stamp-format: "%:y-%02m-%02d" -# time-stamp-end: "'" -# End: diff --git a/install-sh b/install-sh deleted file mode 100644 index a5897de6e..000000000 --- a/install-sh +++ /dev/null @@ -1,519 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2006-12-25.00 - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# Permission is hereby granted, free of charge, to any person obtaining a copy -# of this software and associated documentation files (the "Software"), to -# deal in the Software without restriction, including without limitation the -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or -# sell copies of the Software, and to permit persons to whom the Software is -# furnished to do so, subject to the following conditions: -# -# The above copyright notice and this permission notice shall be included in -# all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-end: "$" -# End: From bee48093d6c8b7a8e4a40ca2942b485d480e000b Mon Sep 17 00:00:00 2001 From: Felix Zielcke Date: Tue, 24 Nov 2009 21:01:40 +0100 Subject: [PATCH 45/49] 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Convert a `for' into a normal shell expansion. --- ChangeLog | 5 +++++ Makefile.in | 10 ++++------ 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/ChangeLog b/ChangeLog index a78fc5b8a..683b708cc 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-24 Felix Zielcke + + * util/Makefile.in (install-local): Convert a `for' into a normal + shell expansion. + 2009-11-24 Robert Millan * autogen.sh: Add automake call. diff --git a/Makefile.in b/Makefile.in index 47da10458..7678ceee0 100644 --- a/Makefile.in +++ b/Makefile.in @@ -312,12 +312,10 @@ install-local: all done @langs='$(LINGUAS)'; \ for lang in $$langs; do \ - $(SHELL) $(mkinstalldirs) $(DESTDIR)/$(datadir)/locale/$$lang/LC_MESSAGES \ - list='po/$$lang.mo'; \ - for file in $$list; do \ - if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ - $(INSTALL_DATA) $$dir$$file $(DESTDIR)/$(datadir)/locale/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ - done \ + $(SHELL) $(mkinstalldirs) $(DESTDIR)/$(datadir)/locale/$$lang/LC_MESSAGES; \ + file="po/$$lang.mo"; \ + if test -f "$$file"; then dir=; else dir="$(srcdir)/"; fi; \ + $(INSTALL_DATA) $$dir$$file $(DESTDIR)/$(datadir)/locale/$$lang/LC_MESSAGES/$(PACKAGE).mo; \ done $(SHELL) $(mkinstalldirs) $(DESTDIR)$(infodir) @list='$(info_INFOS)'; \ From 4a8572e9d83baf99b7b2344b45f7ac8ea0ff2555 Mon Sep 17 00:00:00 2001 From: Carles Pina i Estany Date: Tue, 24 Nov 2009 21:42:14 +0000 Subject: [PATCH 46/49] 2009-11-24 Carles Pina i Estany * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add i18n.h. * conf/i386-efi.rmk: Likewise. * conf/i386-ieee1275.rmk: Likewise. * conf/i386-pc.rmk: Likewise. * conf/powerpc-ieee1275.rmk: Likewise. * conf/sparc64-ieee1275.rmk: Likewise. * conf/x86_64-efi.rmk: Likewise. * gettext/gettex.c: Include . * include/grub/misc.h (grub_gettext_dummy, grub_gettext): Move from here ... * include/grub/i18n.h: ... to here * include/grub/i18n.h: ... to here. * kern/misc.c: Include (grub_gettext_dummy): Move above user. --- ChangeLog | 17 +++++++++++++++++ conf/i386-coreboot.rmk | 4 ++-- conf/i386-efi.rmk | 2 +- conf/i386-ieee1275.rmk | 2 +- conf/i386-pc.rmk | 2 +- conf/powerpc-ieee1275.rmk | 2 +- conf/sparc64-ieee1275.rmk | 2 +- conf/x86_64-efi.rmk | 2 +- gettext/gettext.c | 1 + include/grub/i18n.h | 4 ++++ include/grub/misc.h | 3 --- kern/misc.c | 15 ++++++++------- 12 files changed, 38 insertions(+), 18 deletions(-) diff --git a/ChangeLog b/ChangeLog index 683b708cc..46c71e6f5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,20 @@ +2009-11-24 Carles Pina i Estany + + * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add i18n.h. + * conf/i386-efi.rmk: Likewise. + * conf/i386-ieee1275.rmk: Likewise. + * conf/i386-pc.rmk: Likewise. + * conf/powerpc-ieee1275.rmk: Likewise. + * conf/sparc64-ieee1275.rmk: Likewise. + * conf/x86_64-efi.rmk: Likewise. + * gettext/gettex.c: Include . + * include/grub/misc.h (grub_gettext_dummy, grub_gettext): Move from + here ... + * include/grub/i18n.h: ... to here + * include/grub/i18n.h: ... to here. + * kern/misc.c: Include + (grub_gettext_dummy): Move above user. + 2009-11-24 Felix Zielcke * util/Makefile.in (install-local): Convert a `for' into a normal diff --git a/conf/i386-coreboot.rmk b/conf/i386-coreboot.rmk index 33a477573..2a9073ef5 100644 --- a/conf/i386-coreboot.rmk +++ b/conf/i386-coreboot.rmk @@ -34,7 +34,7 @@ kernel_img_HEADERS = boot.h cache.h device.h disk.h dl.h elf.h elfload.h \ env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \ partition.h msdos_partition.h reader.h symbol.h term.h time.h types.h \ machine/boot.h machine/console.h machine/init.h \ - machine/memory.h machine/loader.h list.h handler.h command.h + machine/memory.h machine/loader.h list.h handler.h command.h i18n.h kernel_img_CFLAGS = $(COMMON_CFLAGS) kernel_img_ASFLAGS = $(COMMON_ASFLAGS) kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,$(GRUB_KERNEL_MACHINE_LINK_ADDR),-Bstatic @@ -77,7 +77,7 @@ kernel_img_HEADERS = boot.h cache.h device.h disk.h dl.h elf.h elfload.h \ env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \ partition.h msdos_partition.h reader.h symbol.h term.h time.h types.h \ machine/boot.h machine/console.h machine/init.h \ - machine/memory.h machine/loader.h list.h handler.h command.h + machine/memory.h machine/loader.h list.h handler.h command.h i18n.h kernel_img_CFLAGS = $(COMMON_CFLAGS) -DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR) kernel_img_ASFLAGS = $(COMMON_ASFLAGS) -DGRUB_KERNEL_MACHINE_LINK_ADDR=$(GRUB_KERNEL_MACHINE_LINK_ADDR) kernel_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)$(GRUB_KERNEL_MACHINE_LINK_ADDR) diff --git a/conf/i386-efi.rmk b/conf/i386-efi.rmk index ac88ebd42..80c2978da 100644 --- a/conf/i386-efi.rmk +++ b/conf/i386-efi.rmk @@ -56,7 +56,7 @@ kernel_mod_SOURCES = kern/i386/efi/startup.S kern/main.c kern/device.c \ kernel_mod_HEADERS = boot.h cache.h device.h disk.h dl.h elf.h elfload.h \ env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \ partition.h msdos_partition.h reader.h symbol.h term.h time.h types.h \ - efi/efi.h efi/time.h efi/disk.h i386/pit.h list.h handler.h command.h + efi/efi.h efi/time.h efi/disk.h i386/pit.h list.h handler.h command.h i18n.h kernel_mod_CFLAGS = $(COMMON_CFLAGS) kernel_mod_ASFLAGS = $(COMMON_ASFLAGS) kernel_mod_LDFLAGS = $(COMMON_LDFLAGS) diff --git a/conf/i386-ieee1275.rmk b/conf/i386-ieee1275.rmk index 2df3421f7..564893666 100644 --- a/conf/i386-ieee1275.rmk +++ b/conf/i386-ieee1275.rmk @@ -33,7 +33,7 @@ kernel_img_HEADERS = cache.h device.h disk.h dl.h elf.h elfload.h \ env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \ partition.h msdos_partition.h reader.h symbol.h term.h time.h types.h \ ieee1275/ieee1275.h machine/kernel.h machine/loader.h machine/memory.h \ - list.h handler.h command.h + list.h handler.h command.h i18n.h kernel_img_CFLAGS = $(COMMON_CFLAGS) kernel_img_ASFLAGS = $(COMMON_ASFLAGS) kernel_img_LDFLAGS = $(COMMON_LDFLAGS) -Wl,-N,-S,-Ttext,0x10000,-Bstatic diff --git a/conf/i386-pc.rmk b/conf/i386-pc.rmk index b100d94e2..2b0894eae 100644 --- a/conf/i386-pc.rmk +++ b/conf/i386-pc.rmk @@ -64,7 +64,7 @@ kernel_img_HEADERS = boot.h cache.h device.h disk.h dl.h elf.h elfload.h \ partition.h msdos_partition.h reader.h symbol.h term.h time.h types.h \ machine/biosdisk.h machine/boot.h machine/console.h machine/init.h \ machine/memory.h machine/loader.h machine/vga.h machine/vbe.h \ - machine/kernel.h machine/pxe.h i386/pit.h list.h handler.h command.h + machine/kernel.h machine/pxe.h i386/pit.h list.h handler.h command.h i18n.h kernel_img_CFLAGS = $(COMMON_CFLAGS) $(TARGET_IMG_CFLAGS) kernel_img_ASFLAGS = $(COMMON_ASFLAGS) kernel_img_LDFLAGS = $(COMMON_LDFLAGS) $(TARGET_IMG_LDFLAGS)$(GRUB_KERNEL_MACHINE_LINK_ADDR) $(COMMON_CFLAGS) diff --git a/conf/powerpc-ieee1275.rmk b/conf/powerpc-ieee1275.rmk index 0a87a6a5d..6427f6bbd 100644 --- a/conf/powerpc-ieee1275.rmk +++ b/conf/powerpc-ieee1275.rmk @@ -17,7 +17,7 @@ kernel_img_HEADERS = boot.h cache.h device.h disk.h dl.h elf.h elfload.h \ env.h err.h file.h fs.h kernel.h misc.h mm.h net.h parser.h reader.h \ symbol.h term.h time.h types.h powerpc/libgcc.h loader.h partition.h \ msdos_partition.h ieee1275/ieee1275.h machine/kernel.h handler.h list.h \ - command.h + command.h i18n.h symlist.c: $(addprefix include/grub/,$(kernel_img_HEADERS)) config.h gensymlist.sh /bin/sh gensymlist.sh $(filter %.h,$^) > $@ || (rm -f $@; exit 1) diff --git a/conf/sparc64-ieee1275.rmk b/conf/sparc64-ieee1275.rmk index 3abddf511..900b70e3c 100644 --- a/conf/sparc64-ieee1275.rmk +++ b/conf/sparc64-ieee1275.rmk @@ -29,7 +29,7 @@ DEFSYMFILES += kernel_syms.lst kernel_img_HEADERS = boot.h cache.h device.h disk.h dl.h elf.h elfload.h \ env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \ partition.h msdos_partition.h reader.h symbol.h term.h time.h types.h \ - list.h handler.h command.h \ + list.h handler.h command.h i18n.h \ sparc64/libgcc.h ieee1275/ieee1275.h machine/kernel.h \ sparc64/ieee1275/ieee1275.h kernel_img_SOURCES = kern/sparc64/ieee1275/crt0.S kern/ieee1275/cmain.c \ diff --git a/conf/x86_64-efi.rmk b/conf/x86_64-efi.rmk index 3d519e955..3b7ac34fa 100644 --- a/conf/x86_64-efi.rmk +++ b/conf/x86_64-efi.rmk @@ -56,7 +56,7 @@ kernel_mod_HEADERS = boot.h cache.h device.h disk.h dl.h elf.h elfload.h \ env.h err.h file.h fs.h kernel.h loader.h misc.h mm.h net.h parser.h \ partition.h msdos_partition.h reader.h symbol.h term.h time.h types.h \ efi/efi.h efi/time.h efi/disk.h machine/loader.h i386/pit.h list.h \ - handler.h command.h + handler.h command.h i18n.h kernel_mod_CFLAGS = $(COMMON_CFLAGS) kernel_mod_ASFLAGS = $(COMMON_ASFLAGS) kernel_mod_LDFLAGS = $(COMMON_LDFLAGS) diff --git a/gettext/gettext.c b/gettext/gettext.c index 5c1279dc3..856265e6f 100644 --- a/gettext/gettext.c +++ b/gettext/gettext.c @@ -26,6 +26,7 @@ #include #include #include +#include /* .mo file information from: diff --git a/include/grub/i18n.h b/include/grub/i18n.h index e4e06e9cd..f6f468744 100644 --- a/include/grub/i18n.h +++ b/include/grub/i18n.h @@ -25,6 +25,10 @@ # define _(str) gettext(str) #else # define _(str) grub_gettext(str) + +const char *EXPORT_FUNC(grub_gettext_dummy) (const char *s); +extern const char *(*EXPORT_VAR(grub_gettext)) (const char *s); + #endif #define N_(str) str diff --git a/include/grub/misc.h b/include/grub/misc.h index 8ec8ad822..31d4ddf85 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -191,9 +191,6 @@ grub_ssize_t EXPORT_FUNC(grub_utf8_to_ucs4) (grub_uint32_t *dest, grub_uint64_t EXPORT_FUNC(grub_divmod64) (grub_uint64_t n, grub_uint32_t d, grub_uint32_t *r); -const char *EXPORT_FUNC(grub_gettext_dummy) (const char *s); -extern const char *(*EXPORT_VAR(grub_gettext)) (const char *s); - #ifdef NEED_ENABLE_EXECUTE_STACK void EXPORT_FUNC(__enable_execute_stack) (void *addr); #endif diff --git a/kern/misc.c b/kern/misc.c index 827f864c4..9f9a3ae65 100644 --- a/kern/misc.c +++ b/kern/misc.c @@ -23,6 +23,7 @@ #include #include #include +#include static int grub_iswordseparator (int c) @@ -30,6 +31,13 @@ grub_iswordseparator (int c) return (grub_isspace (c) || c == ',' || c == ';' || c == '|' || c == '&'); } +/* grub_gettext_dummy is not translating anything. */ +const char * +grub_gettext_dummy (const char *s) +{ + return s; +} + const char* (*grub_gettext) (const char *s) = grub_gettext_dummy; void * @@ -986,13 +994,6 @@ grub_utf8_to_ucs4 (grub_uint32_t *dest, grub_size_t destsize, return p - dest; } -/* grub_gettext_dummy is not translating anything. */ -const char * -grub_gettext_dummy (const char *s) -{ - return s; -} - /* Abort GRUB. This function does not return. */ void grub_abort (void) From 13b33fba6fc469b59c60ca8bc34d6189f22492aa Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Wed, 25 Nov 2009 01:50:33 +0000 Subject: [PATCH 47/49] 2009-11-25 Robert Millan * normal/main.c (grub_normal_execute): Replace "parser.sh" with "parser.grub" in grub_command_execute() call. --- ChangeLog | 5 +++++ normal/main.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 46c71e6f5..27d538c04 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-25 Robert Millan + + * normal/main.c (grub_normal_execute): Replace "parser.sh" with + "parser.grub" in grub_command_execute() call. + 2009-11-24 Carles Pina i Estany * conf/i386-coreboot.rmk (kernel_img_HEADERS): Add i18n.h. diff --git a/normal/main.c b/normal/main.c index 784c72449..a753ab0c4 100644 --- a/normal/main.c +++ b/normal/main.c @@ -415,7 +415,7 @@ grub_normal_execute (const char *config, int nested, int batch) read_command_list (); read_fs_list (); read_handler_list (); - grub_command_execute ("parser.sh", 0, 0); + grub_command_execute ("parser.grub", 0, 0); reader_nested = nested; From 08806a54c5da1160d15c3a87a0c0b04edecdefcc Mon Sep 17 00:00:00 2001 From: Robert Millan Date: Wed, 25 Nov 2009 03:48:33 +0000 Subject: [PATCH 48/49] 2009-11-25 Robert Millan * normal/main.c (grub_normal_read_line): Fix off-by-one buffer overflow.. --- ChangeLog | 5 +++++ normal/main.c | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 27d538c04..dd26cb18c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-25 Robert Millan + + * normal/main.c (grub_normal_read_line): Fix off-by-one + buffer overflow. + 2009-11-25 Robert Millan * normal/main.c (grub_normal_execute): Replace "parser.sh" with diff --git a/normal/main.c b/normal/main.c index a753ab0c4..dcc91c649 100644 --- a/normal/main.c +++ b/normal/main.c @@ -524,7 +524,7 @@ static grub_err_t grub_normal_read_line (char **line, int cont) { grub_parser_t parser = grub_parser_get_current (); - char prompt[sizeof("> ") - 1 + grub_strlen (parser->name)]; + char prompt[sizeof("> ") + grub_strlen (parser->name)]; grub_sprintf (prompt, "%s> ", parser->name); From 6717926e6e2cf2bbeeeae560eb2f5272df101d27 Mon Sep 17 00:00:00 2001 From: Yves Blusseau Date: Wed, 25 Nov 2009 12:23:16 +0100 Subject: [PATCH 49/49] 2009-11-25 Yves Blusseau * configure.ac: move the call to AM_GNU_GETTEXT to avoid warnings when aclocal is run. --- ChangeLog | 5 +++++ configure.ac | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index dd26cb18c..b2e8ad37b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2009-11-25 Yves Blusseau + + * configure.ac: move the call to AM_GNU_GETTEXT to avoid warnings when + aclocal is run. + 2009-11-25 Robert Millan * normal/main.c (grub_normal_read_line): Fix off-by-one diff --git a/configure.ac b/configure.ac index 58b291d4f..0a76c7b51 100644 --- a/configure.ac +++ b/configure.ac @@ -33,7 +33,6 @@ dnl type. AC_INIT([GRUB],[1.97],[bug-grub@gnu.org]) AM_INIT_AUTOMAKE() -AM_GNU_GETTEXT() AC_PREREQ(2.59d) AC_CONFIG_SRCDIR([include/grub/dl.h]) AC_CONFIG_HEADER([config.h]) @@ -173,6 +172,7 @@ AC_PROG_CC test "x$GCC" = xyes || AC_MSG_ERROR([GCC is required]) AC_GNU_SOURCE +AM_GNU_GETTEXT AC_SYS_LARGEFILE # Identify characteristics of the host architecture.