Move platform-dependent files from $prefix to $prefix/$platform.

* config.h.in (GRUB_TARGET_CPU): New definition.
	(GRUB_PLATFORM): Likewise.
	* configure.ac: Define GRUB_TARGET_CPU and GRUB_PLATFORM.
	* grub-core/commands/parttool.c (grub_cmd_parttool): Update dir.
	* grub-core/efiemu/main.c (grub_efiemu_autocore): Likewise.
	* grub-core/kern/dl.c (grub_dl_load): Likewise.
	* grub-core/normal/autofs.c (read_fs_list): Likewise.
	* grub-core/normal/crypto.c (read_crypto_list): Likewise.
	* grub-core/normal/dyncmd.c (read_command_list): Likewise.
	* grub-core/normal/term.c (read_terminal_list): Likewise.
	* grub-core/gettext/gettext.c (grub_mofile_open_lang): Use
	$prefix/locale.
	(grub_gettext_init_ext): Likewise.
	* grub-core/normal/main.c (GRUB_MOD_INIT): Define grub_cpu and
	grub_platform.
	* util/grub-install.in: Update directories.
	* util/grub-mknetdir.in: Likewise.
	* util/grub-mkrescue.in: Likewise.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-02-04 21:47:29 +01:00
parent db606889a9
commit 92cd0f6e45
15 changed files with 118 additions and 73 deletions

View file

@ -185,7 +185,8 @@ grub_cmd_parttool (grub_command_t cmd __attribute__ ((unused)),
{
char *filename;
filename = grub_xasprintf ("%s/parttool.lst", prefix);
filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM
"/parttool.lst", prefix);
if (filename)
{
grub_file_t file;

View file

@ -242,12 +242,12 @@ grub_efiemu_autocore (void)
suffix = grub_efiemu_get_default_core_name ();
filename = grub_xasprintf ("%s/%s", prefix, suffix);
filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM "/%s",
prefix, suffix);
if (! filename)
return grub_error (GRUB_ERR_OUT_OF_MEMORY,
"couldn't allocate temporary space");
err = grub_efiemu_load_file (filename);
grub_free (filename);
if (err)

View file

@ -286,14 +286,14 @@ grub_mofile_open (const char *filename)
/* Returning grub_file_t would be more natural, but grub_mofile_open assigns
to fd_mo anyway ... */
static grub_err_t
grub_mofile_open_lang (const char *locale_dir, const char *locale)
grub_mofile_open_lang (const char *part1, const char *part2, const char *locale)
{
char *mo_file;
grub_err_t err;
/* mo_file e.g.: /boot/grub/locale/ca.mo */
mo_file = grub_xasprintf ("%s/%s.mo", locale_dir, locale);
mo_file = grub_xasprintf ("%s%s/%s.mo", part1, part2, locale);
if (!mo_file)
return grub_errno;
@ -317,20 +317,23 @@ grub_mofile_open_lang (const char *locale_dir, const char *locale)
static grub_err_t
grub_gettext_init_ext (const char *locale)
{
const char *locale_dir;
const char *part1, *part2;
grub_err_t err;
if (!locale)
return 0;
locale_dir = grub_env_get ("locale_dir");
if (locale_dir == NULL)
part1 = grub_env_get ("locale_dir");
part2 = "";
if (!part1)
{
grub_dprintf ("gettext", "locale_dir variable is not set up.\n");
return 0;
part1 = grub_env_get ("prefix");
if (!part1)
return 0;
part2 = "/locale";
}
err = grub_mofile_open_lang (locale_dir, locale);
err = grub_mofile_open_lang (part1, part2, locale);
/* ll_CC didn't work, so try ll. */
if (err)
@ -342,7 +345,7 @@ grub_gettext_init_ext (const char *locale)
{
*underscore = '\0';
grub_errno = GRUB_ERR_NONE;
err = grub_mofile_open_lang (locale_dir, lang);
err = grub_mofile_open_lang (part1, part2, lang);
}
grub_free (lang);

View file

@ -708,7 +708,8 @@ grub_dl_load (const char *name)
return 0;
}
filename = grub_xasprintf ("%s/%s.mod", grub_dl_dir, name);
filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM "/%s.mod",
grub_dl_dir, name);
if (! filename)
return 0;

View file

@ -57,7 +57,8 @@ read_fs_list (const char *prefix)
{
char *filename;
filename = grub_xasprintf ("%s/fs.lst", prefix);
filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM
"/fs.lst", prefix);
if (filename)
{
grub_file_t file;

View file

@ -86,7 +86,8 @@ read_crypto_list (const char *prefix)
return;
}
filename = grub_xasprintf ("%s/crypto.lst", prefix);
filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM
"/crypto.lst", prefix);
if (!filename)
{
grub_errno = GRUB_ERR_NONE;

View file

@ -77,7 +77,8 @@ read_command_list (const char *prefix)
{
char *filename;
filename = grub_xasprintf ("%s/command.lst", prefix);
filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM
"/command.lst", prefix);
if (filename)
{
grub_file_t file;

View file

@ -527,6 +527,10 @@ GRUB_MOD_INIT(normal)
grub_env_set (features[i], "y");
grub_env_export (features[i]);
}
grub_env_set ("grub_cpu", GRUB_TARGET_CPU);
grub_env_export ("grub_cpu");
grub_env_set ("grub_platform", GRUB_PLATFORM);
grub_env_export ("grub_platform");
}
GRUB_MOD_FINI(normal)

View file

@ -308,7 +308,8 @@ read_terminal_list (const char *prefix)
return;
}
filename = grub_xasprintf ("%s/terminal.lst", prefix);
filename = grub_xasprintf ("%s/" GRUB_TARGET_CPU "-" GRUB_PLATFORM
"/terminal.lst", prefix);
if (!filename)
{
grub_errno = GRUB_ERR_NONE;